[Python] 파이썬스럽게 코드 쓰기, Pythonic Code

<aside> ☝ 이해못한 부분

Asterisk(*) 연산자는 곱셈뿐만 아니라, 파이썬스러운 코드를 다루고자 할 때 다양한 사용도를 가지게 된다.

어떤 사용도가 있는지 아래에서 확인해보자.

오늘 여기서는 세 번째 가변인자를 사용하는 방법과, 컨테이너 타입의 데이터를 Unpacking하는 방법을 간략하게 살펴보려고 한다.

가변인자 (Variadic Arguments)를 사용하고자 할 때

우리는 종종 함수에서 가변인자를 필요로 할 때가 있다.

여기서 말하는 가변인자란, 들어오는 인자의 개수를 모른다거나, 그 어떤 인자라도 모두 받아서 처리를 해야 하는 때를 의미한다.

파이썬에서는 인자의 종류가 2가지가 있다.

하나는 그대로 위치에 따라 정해지는 인자인, positional arguments이고, 하나는 키워드를 가진 이름을 가진 인자 keyword arguments이다.

def asterisk_test(a, *args):
    print(a, args)
    print(type(args))

asterisk_test(1,2,3,4,5,6)	# 1 (2, 3, 4, 5, 6) <class 'tuple'>
def asterisk_test(a, **kargs):
    print(a, kargs)
    print(type(kargs))

asterisk_test(1, b=2, c=3, d=4, e=5, f=6)	# 1 {'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6} <class 'dict'>

컨테이너 타입의 데이터를 Unpacking 할 때

def asterisk_test(a, args):
    print(a, *args)
    print(type(args))

asterisk_test(1, (2,3,4,5,6))	# 1 2 3 4 5 6 <class 'tuple'>
def asterisk_test(a, b, c, d,):
    print(a, b, c, d)

data = {"b":1, "c":2, "d":3}
asterisk_test(10, **data)	# 10 1 2 3

</aside>