매개변수, 가변인수, 키워드인수
매개변수(parameter)
def plus(매개변수1, 매개변수2):
return 매개변수1 + 매개변수2
전달인자(argument)
def plus(매개변수1, 매개변수2):
return 매개변수1 + 매개변수2
plus(전달인자1, 전달인자2)
가변인수(variable argument)
전달인자의 개수를 명확하게 정할 수 없을 때 사용.
def plus(*매개변수1):
return sum(매개변수1)
plus(1,2,3,4,5)
매개변수를 원하는 이름으로 지어줘도 되지만, 관례적으로 args
를 사용.
def plus(*args):
return sum(args)
plus(1,2,3,4,5)
고정 인수와 가변 인수를 함께 쓸 때는 고정 인수를 먼저 지정해야함.
def plus(a, *args):
print(a) # 1
return sum(args) # sum(2,3,4,5) = 14
plus(1,2,3,4,5)
키워드 인수(keyword argument)
함수의 인수가 많아지면 인수의 순서를 외워 작성하는 것은 힘듦.
키워드 인수를 사용하면 키워드=값
이 되므로 순서를 신경쓰지 않아도 됨.
def people(name, age, addr, phone, blood):
print(f'이름은 {name} 입니다.')
print(f'나이는 {age} 입니다.')
print(f'주소는 {addr} 입니다.')
print(f'번호는 {phone} 입니다.')
print(f'혈액형은 {blood} 입니다.')
# bad
people("김철수",22,"지구어딘가","012-3456-7890","B")
# good
people(age=22,phone="012-3456-7890",name="김철수",blood="B",addr="지구어딘가")
공식문서에서 보면 int(x,base=10)
처럼 키워드 인수를 쉽게 찾아볼 수 있다.
참고로 print(10,20,end='')
도 end=''
이 키워드 인수이다.
딕셔너리를 활용한 키워드 인수
딕셔너리를 키워드 인수로 사용할 때는 애스터리스크를 두 개 붙여야한다.
딕셔너리에서 한 번 언패킹하면 키를 사용하겠다는 뜻.
두 번 언패킹하면 값을 사용하겠다는 뜻.
def people(name, age, addr, phone, blood):
print(f'이름은 {name} 입니다.')
print(f'나이는 {age} 입니다.')
print(f'주소는 {addr} 입니다.')
print(f'번호는 {phone} 입니다.')
print(f'혈액형은 {blood} 입니다.')
dictionary = {'age':22,'phone':'012-3456-7890','name':'김철수','blood':'B','addr':'지구어딘가'}
people(**dictionary)
키워드 인수를 사용하는 가변 인수
관례적으로 **kwargs
를 매개 변수로 사용.
def people(**kwargs):
for kw, arg in kwargs.items():
print(f'{kw}은(는) {arg} 입니다.')
dictionary = {'age':22,'phone':'012-3456-7890','name':'김철수','blood':'B','addr':'지구어딘가'}
people(**dictionary)
가변 인수와 키워드 인수를 같이 사용할 때는
*args
,**kwargs
순으로 지정해야함.def custom_print(*args, **kwargs): print(*args, **kwargs)
매개변수의 초깃값 설정
매개변수에 매개변수=값
을 설정하면 초깃값을 설정할 수 있다.
def people(blood=`B`):
print(f'혈액형은 {blood} 입니다.') # 혈액형은 B 입니다.
people()
초깃값 매개변수 뒤에 일반 매개변수가 오면 오류가 발생한다.
# bad
def people(blood=`B`, name):
print(f'이름은 {name} 입니다.')
print(f'혈액형은 {blood} 입니다.') # 혈액형은 B 입니다.
# good
def people(name, blood=`B`):
print(f'이름은 {name} 입니다.')
print(f'혈액형은 {blood} 입니다.') # 혈액형은 B 입니다.
Author And Source
이 문제에 관하여(매개변수, 가변인수, 키워드인수), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sawol/매개변수-가변인수-키워드인수저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)