*args, **kwargs

허준·2022년 8월 31일
0

참고: https://brunch.co.kr/@princox/180

args: 함수를 정의할 때, 몇개의 인자를 받을지 모를 때 사용.
args대신 다른 이름 a, names 등을 사용해도 된다.
이 경우, 입력값들이 tuple형태로 입력된다.

주의할점은 args는 여러 인자중 가장 마지막에 들어있어야 된다는 점. 안그러면 어디까지는 args에 담을지를 파이썬이 알 수 없다!

**kwargs는 keyword argument의 줄임말

위 블로그에 아주 좋은 예시가 있다.

def pname(**kwargs):
	for key, value in kwargs.items():
    	print("{0} is {1}".format(key,value))
pname(MyName='tony')

이 경우, 인자를 딕셔너리 형태로 전달한다. 즉 key는 Myname이 되고, value는 'tony'가 된다.

함수를 호출할 때마다 매번 새로운 딕셔너리를 만들어주는 개념이므로, 원하는 동작에 따라 함수가 다르게 돌아가도록 만들 수 있다.

*args, **kwargs를 같이 쓰면, args가 kwargs보다 앞에 있어야 된다.

profile
퀀트 지망(Quant candidate)

0개의 댓글