2015년 3월 25일 수요일

Python 위치 인수, 키워드 인수 | Arguments and Keyword Arguments in Python

함수에 인수를 넣어서 바로 출력하도록 정의

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}

댓글 없음:

댓글 쓰기