[Python] 11. 함수 호출과 매개변수 선언시 *와 **의 사용 규칙
본 포스팅은 “윤성우의 열혈 파이썬 중급편” 책 내용을 기반으로 작성되었습니다. 잘못된 내용이 있을 경우 지적해 주시면 감사드리겠습니다.
11-1. iterable 객체와 매개변수
function(*iterable): 리스트, 튜플, 문자열(iterable 객체)을 풀어서 전달
function(**iterable): 딕셔너리 값을 풀어서 전달
def out(a, b, c):
print(a, b, c, sep=', ')
a = [1, 2, 3]
b = (1, 2, 3)
c = 'abc'
d = dict(a=1, b=2, c=3)
out(*a)
out(*b)
out(*c)
out(*d) # 키가 전달됨
out(**d) # 값이 전달됨
out(*(d.items()))
(결과) 1, 2, 3
1, 2, 3
a, b, c
a, b, c
1, 2, 3
('a', 1), ('b', 2), ('c', 3)
11-2. 딕셔너리와 매개변수
def function(*args): 값들이 튜플로 묶여서 args로 전달
def out(*args):
print(args)
out()
out(1)
out(1, 2)
out(1, 2, 3)
(결과) ()
(1,)
(1, 2)
(1, 2, 3)
def function(**args): 전달되는 내용이 딕셔너리로 묶여서 args로 전달
def out(**args):
print(args)
out()
out(a=1)
out(a=1, b=2)
out(a=1, b=2, c=3)
(결과) {}
{'a': 1}
{'a': 1, 'b': 2}
{'a': 1, 'b': 2, 'c': 3}
*args와 **args를 동시에 둘 수도 있다!
Leave a comment