함수에 인수를 넣어서 바로 출력하도록 정의
def function1(data):
for arg in data:
print(arg)
function1('A')
A
그러나, 함수에 복수의 인수를 넣었을 때는 실행이 안 된다.
function1('A', 'B')
Traceback (most recent call last):
File "", line 14, in
TypeError: function1() takes exactly 1 argument (2 given)
function1()은 인수를 1개만 받도록 되어 있다는 에러 메세지가 출력된다.
이 경우, 함수를 정의할 때 인수에 *을 붙여서 정의하면
함수를 실행할 때 인수가 몇 개가 되든 args에 튜플 자료형의 변수로 들어간다.
따라서 반복문에서도 문제 없이 실행된다.
def function2(*args):
for arg in args:
print(arg)
function2('A')
print('-' * 20)
function2('A', 'B')
print('-' * 20)
function2('A', 'B', 'C')
A
--------------------
A
B
--------------------
A
B
C
다음은 key값이 정해져 있는 인수를 받는 경우.
함수 안에서 kwargs라는 변수는 dict 자료형으로 변환된다.
def function3(**kwargs):
print(kwargs['key'])
function3(key='A')
A
def function4(**kwargs):
for arg in kwargs:
print(kwargs[arg])
function4(a=1, b=2, c=3)
1
3
2
def function5(**kwargs):
print(kwargs)
function5(a=1, b=2, c=3)
{'a': 1, 'c': 3, 'b': 2}
댓글 없음:
댓글 쓰기