첫번째: 가변 키워드 인수가 중앙에 올 경우
def func_param_with_kwargs(name, age, **kwargs, address=0):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
이렇게 하면 당연히 터미널에서 그분이 반긴다.
SyntaxError: invalid syntax
이렇게 뜨는 이유는 파라미터 순서를 정확하게 지켜주지 않아서 이다.
앞시간에 *args를 무조건 뒤로 보내야지 에러를 만난지 않는다 했다. 이번에도 그렇다.
*args에서 **kwargs를 애스터리스크 두개가 붙어 있기 때문에 제일 뒤쪽으로 보내야지
올바르게 작동한다.
TIP: *args, **kargs에서 애스터리스크 다음에 있는 변수명은 아무거나 해도 상관없고
관례적으로 저렇게 많이 쓰기 때문에 저렇게 쓰는 것뿐이다!
올바르게 접근하면 아래와 같이 나오게 된다.
def func_param_with_kwargs(name, age,address=0, **kwargs ):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
name=정우성
age=20
kwargs={'mobile': '01012341234'}
address=seoul