Assignment
이번 과제는 programming 과제가 아니라 개념을 설명하는 과제 입니다.
함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안된다고 배웠습니다.
왜 안돼야만 하는지 생각해보시고 블로깅 하여 채널에 공유해 주세요.
(자신의 위치를 정확히 모르는 non-default인 정우성만 정의해주면 keyword argument값은 아이유는 알아서 자기자리로 원래간다.)
이걸보면 my_name에 non-default값인 정우성이 먼저 자리를 잡아서 남은자리에 default값인 아이유가 들어가게되었다.
만약 defalut값인 아이유가 non-default값 앞에 오면 파이썬 입장에서 두자리중 어느곳에 값을 나타낼지 모른다.
그래서 일단 non-default로 자리를 먼저 잡아준다는 느낌으로 이해했다.
keyword argument는 자신의 위치가 어디인줄 알지만 positional은 모른다.
def love_you(my_name, your_name):
print(f"{my_name} loves {your_name}")
love_you(your_name = "아이유", "정우성")
> Traceback (most recent call last):
File "python", line 1
SyntaxError: positional argument follows keyword argument
non-default값인 정우성은 순서에 맞춰주지 않으면 어떤 위치에서 호출되어야 하는지 모른다.
def non(a="one", b="two" , c ):
print(a,b,c)
의 결과는
>>SyntaxError: non-default argument follows default argument
반면
def non(c,a="one", b="two" ):
print(a,b,c)
는 실행된다.
링크텍스트
1. positional arguments(정해진 순서대로 명시해야함)
2. default arguments
3. positional arguments들의 집합
4. keyword arguments (함수를 호출시에 파라미터에 명시)
5. keyword default arguments (keyword arguments에 default 값이 지정된 경우)
6. keyword arguments의 집합
다음글에 변수를 늘려서 실습을 해보았습니다.