python에서 *과 **의 의미

python 소스를 보다보면 의미모를 것들이 참 많다.

그 중에 하나였던 *, **의 정체를 알아보자.

거두절미 하고 간단한 예제와 주석으로 대체한다.

 

# 함수에 입력되는 변수 개수를 알 수 없을 때 사용한다. *args 형태로 매개변수를 설정한다.
# 즉 '*'의 의미는 튜플형태로 매개변수를 받겠다고 지정한다는 의미를 갖는다.

def add(*args):
    total=0
    for i in args:
        total+=i
    return total

print(add(1, 2, 3, 4))


# 결과 : 10

# *와 유사하지만, 매개변수에 입력되는 데이터 형식이 튜플이 아닌 딕셔너리 형태라는데 차이가 있다.

def print_args(**klist):
    print(klist)

print_args(p1="1", p2="2", p3="3")

#결과 : {'p2': '2', 'p3': '3', 'p1': '1'}

 
Share