-
파이썬의 *args와 **kwargsPython 2020. 1. 21. 16:26반응형
파이썬 코드를 보다보니 함수 인자에 args와 *kwargs가 있는데 잘 몰라서 찾아보았다.
1. *args
*args는 함수의 인자로 들어온 내용이 list에 담긴다고 생각하면 된다.
def myFun(*args): for arg in args: print(arg) myFun('Hello', 'Welcome', 'to', 'HanSeokhyeon')
output:
Hello Welcome to HanSeokhyeon
남은 인자를 싹 담는다.
def myFun(arg1, *args): print("First: {}".format(arg1)) for arg in args: print("Next: {}".format(arg)) myFun('Hello', 'Welcome', 'to', 'HanSeokhyeon')
output:
First: Hello Next: Welcome Next: to Next: HanSeokhyeon
2. **kwargs
**kwargs는 함수의 인자로 들어온 내용이 dictionary에 담긴다고 생각하면 된다. Dictionary에 담기 위해 key를 지정해줘야한다.
def myFun(**kwargs): for key, value in kwargs.items(): print ("%s == %s" %(key, value)) myFun(first ='Han', mid ='seok', last='hyeon')
output:
first == Han mid == seok last == hyeon
마찬가지로 가능하다.
def myFun(arg1, **kwargs): print("First: {}".format(arg1)) for key, value in kwargs.items(): print ("%s == %s" %(key, value)) myFun('Hi', first ='Han', mid ='seok', last='hyeon')
output:
First: Hi first == Han mid == seok last == hyeon
3. args와 *kwargs 둘 다 사용하기
같이 쓰면 key가 없으면 args로, key가 있으면 kwargs로 들어간다.
def myFun(*args, **kwargs): for arg in args: print("args: {}".format(arg)) for key, value in kwargs.items(): print ("%s == %s" %(key, value)) myFun('Hi', 'everyone', first ='Han', mid ='seok', last='hyeon')
output:
argv: Hi argv: everyone first == Han mid == seok last == hyeon
반응형'Python' 카테고리의 다른 글
Python multiprocessing 속도 비교 (0) 2020.01.21 파이썬 pow 함수의 3번째 인자 (0) 2020.01.12 2차원 배열에서 본인을 제외한 min 구하기 (0) 2020.01.10