오늘 드디어 발표를 했다.
주제는 매개변수와 초기값에 대한 공부가 가장 잘된 거 같은데,, 발표하기 전까지는 어떻게 말할지 머리로 구상을 다 해 놨지만 막상 현실은 시궁창이였다.
너무 긴장해서 말도 잘 안나오고, 머리로는 알았던건데 입으로 나오지 못해버렸다.
오늘 기억에 남는 매개변수 문제.
def print_numbers(a, args):
... print(a)
... print(args)
print_numbers([10, 20, 30])
10
(20, 30)
왜 이런식으로 나올까? 고민해봤다. 저 위에 print에(a, *args):여기는 이해가 된다.
a는 고정값, args는 언패킹 매개변수라고 생각하면 왜 밑에 10만 고정값이고 20,30은 매개변수인지 근데 발표 준비할 때 어렴풋이 깨닳았는데, 저 (,)의 앞 즉 맨 앞의 숫자는 고정값이고 (,)뒤에는 몇개가 오든 다 매개변수가 아닐까 싶었다.
그래서 발표를 하면서 질문을 했는데, 역시 맞다고 해주셨다. 서승현님이랑 퍼실님이 친절하게 알려주셔서 참 다행이였다.
아 진짜 안타까운거. 알고 있었는데 막상 발표하니까 머리가 하얘진 부분
def personal_info(name, address='비공개', age):
... print('이름: ', name)
... print('나이: ', age)
... print('주소: ', address)
...
이런식으로 쓰면 에러가 뜬다. 왜냐? 매개변수가 age나 name을 호출했을 때 어디로 값을 넣어야 하는지 알 수 없기 때문이다.
그러므로 값이 정해진 매개변수는 맨 끝 부분으로 보내야한다.
이걸 준비할 때 까지는 알고 있었는데 발표하니까 까먹어서 다시 물어봤다.
어쨋든 이번년도 마지막 발표를 시원하게 말아먹은거 같다.