# 함수를 선언할 땐 def을 붙이고 함수명을 적어야 함. (define)
# 함수에는 parameter가 필요.
def function_name(parameter):
returning_value=True
return returning_value
function_name(argument) # 함수 호출
는 시퀸스 언패킹 연산자라고도 불리며, 시퀸스를 풀어 헤치는 연산자
주로 튜플이나 리스트를 언패킹하는데 사용
parameter 앞에 * 를 붙여 가변인자를 만들 수 있음
가변인자는 Optional이기 때문에, 값이 들어가지 않아도 됨.
def func(*args):
print(args)
print(type(args))
func(1,2,3,'a','b')
# (1,2,3,'a','b')
# <class 'tuple'>
# 가변인자는 값이 들어가지 않아도 상관 없음.
def family(mother, father, *pets): # *pets은 옵션
print(mother)
print(father)
print(pets)
family('엄마', '아빠')
# 엄마
# 아빠
몇 개의 키워드 인자를 받을지 모르는 함수를 정의할 때 유용
*kwargs
는 딕셔너리로 묶여 처리되며, parameter 앞에 **를 붙여 표현
# 가변 키워드 인자 사용법
def family(**kwargs):
for key, value in kwrgs.items():
print(key, ':', value)
family(father='아버지',mother='엄마',baby='아기')
# 변수를 선언하듯, 따옴표를 붙이지 말아야 함.
# 가변 키워드 인자 활용
def family(mother, father, **pets):
print(father, mother)
if pets: # pets이 있으면 작업
for species, name in kwrgs.items():
print(species, ':', name)
family('아버지', '엄마', dog='개', cat='고양이')
# 1. Positional Argument
def function(a, b): # a, b는 Parameter
return a+b
c, d = 5, 5
function(c, d) # c, d는 Argument
# 2. Keyword Argument
function(c=5, d=5)
function(c, d=5)
function(c=5, d) # <= 오류 발생
# keyword argument를 사용하는 순간 그 이후의 아규먼트는 모두 키워드를 사용해야 함
# 3. Default argument values:
def function_default_value(x, y=0):
return x+y
function_default_value(3)
# 패킹
numbers=(1,2,3,4,5)
print(numbers) # (1,2,3,4,5)
# 언패킹
a,b,c,d,e=numbers
print(a,b,c,d,e) # 1,2,3,4,5
📢 **단, 언패킹시 변수의 개수와 할당하고자 하는 요소의 갯수가 동일해야 함.**
# 언패킹시 변수의 개수와 할당하고자 하는 요소가 다르면 오류가 발생
numbers=(1,2,3,4,5)
a,b,c,d,e,f = numbers # ValueError: not eough values to unpack
# Asterisk를 이용한 가변인자 활용 (함수의 입력에서 자세히 다룸)
a,b,*rest = numbers
print(a,b,rest) # 1 2 (3,4,5)
c,*args,d = numbers
print(c,args,d) # 1 (2,3,4) 5