[python] 함수 인자, packing, unpacking

한라봉·2023년 4월 9일

Python 문법

목록 보기
3/15

1. positional argument(위치 인자)

C에서 함수 인자 전달과 동일.
순서에 맞게 인자 전달.

def solution(num1, num2):
	return num1 + num2

solution(1, 2)

num1 = 1, num2 = 2가 들어간다.

2. keyword argument(키워드 인자)

인자에 키워드가 있어서, 키워드로 인자 전달.
순서가 바껴도 괜찮음.

def solution(num1, num2):
	return num1 + num2

solution(num2 = 1, num1 = 2)

num1 = 2, num2 = 1이 들어간다.


위치 인자와 키워드 인자를 같이 사용할 경우, 위치 인자를 먼저 써야된다.

packing, unpacking

packing

*을 사용해서 여러 개의 인자를 tuple로 packing을 할 수 있다.
ex)

def solution(*num):
	return sum(num)

2개의 *을 사용하여 dictionary형을 packing할 수 있다.

def func(**kwargs):
	print(kwargs)
	print(type(kwargs))

func(a = 1, b = 2, c = 3)

결과 :

{'a': 1, 'b': 2, 'c': 3}
<class 'dict'>

unpacking

참고자료: https://wikidocs.net/22801
packing 되어있는 객체를 여러 개의 객체로 나눈다.

def solution(num1, num2):
	return num1 + num2

numbers = [1, 2]
solution(*numbers)

list 원소 개수에 맞춰서 unpacking할 수 있다.

>>> l = [1, 2, 3]
>>> x, y, z = l
>>> x
	1
>>> y
	2
>>> z
	3
profile
개발자가 되고 싶은 한라봉

0개의 댓글