728x90

- *args, **kargs : 동시에 여러 변수를 함수에 전달하고 싶을 때 사용하며 특히 몇 개나 전달할 지 알 수 없을 때 사용하면 편리하다.
- **kargs는 key-value형태로 전달할 때 사용한다.

def args(*arguments):
    print(arguments)
def kargs(**keyword_arguments):
    print(keyword_arguments)

 

1. *args : 쉼표로 구분해 여러 변수를 전달하면 그 변수들을 담은 튜플이 전달됨

전달 형식 : 'one', 'two', 'three'

args('one', 'two', 'three')

"""
위 코드 실행 결과:
('one', 'two', 'three')
"""

 

2. **kargs : 쉼표로 구분 + key=value의 형태로 변수를 전달하면 그 key-value쌍을 담은 딕셔너리가 전달됨

전달 형식 : key1=value2, key2=value2, ...

kargs(one='one', two='two')

"""
위 코드 실행 결과:
{'one': 'one', 'two': 'two'}
"""

 

- 예시로 문자열을 전달했지만 변수 x, y, z를 전달(args(x, y, z))해도 된다. 물론 함수도 된다.

- args는 arguments, kargs는 keys-arguments의 줄임말이라고 생각하면 될 것 같다. 큰 의미 없이 붙은 임의의 네이밍으로 *, **만 잘 구분해서 원하는 대로 사용하면 된다.

728x90