Chap.7 함수[인수의 형식] - 키워드 인수, 키워드 가변 인수
인수의 형식
키워드 인수, 키워드 가변 인수
키워드 인수
- 일반적으로 함수 호출시 인수의 배치 순서대로 매칭
- 인수 순서가 아닌 인수의 명칭으로 매칭하는 방법
이전 가변 인수
def int_sum(*numbers):
total = 0
for n in numbers:
total += n
return total
def main():
print(int_sum(1, 2, 3, 4, 5))
print(int_sum()) # 인수 없이 호출이 된다. 루프를 돌지 않는다.
main()
결과
15
0
키워드 인수
def calcstep(begin, end, step):
total = 0
for num in range(begin, end+1, step):
total += num
return total
print("3 ~ 5 =", calcstep(3, 5, 1))
print("3 ~ 5 =", calcstep(begin=3, end=5, step=1))
print("3 ~ 5 =", calcstep(step=1, end=5, begin=3))
print("3 ~ 5 =", calcstep(3, 5, step=1))
print("3 ~ 5 =", calcstep(3, step=1, end=5))
결과
3 ~ 5 = 12
3 ~ 5 = 12
3 ~ 5 = 12
3 ~ 5 = 12
3 ~ 5 = 12
print 함수 키워드 함수
a = 10
b = 20
print(a, b)
print(a, b, sep=',')
print(a, b, sep=',', end='$')
print(a, b, end='$', sep=',')
결과
10 20
10,20
10,20$10,20$
키워드 가변 인수
- 키워드 인수를 가변 개수로 전달할 때 사용하는 방법
- **기호로 지정하여 타입은 사전 (dictionary)이 됨
def 함수명(**인수명):
명령 블럭
키워드 가변 인수
def calcstep(**args): # <class 'dict'>
begin = args['begin']
end = args['end']
step = args['step']
total = 0
for num in range(begin, end+1, step):
total += num
return total
print("3 ~ 5 =", calcstep(begin=3, end=5, step=1))
print("3 ~ 5 =", calcstep(step=1, end=5, begin=3))
print("3 ~ 5 =", calcstep(begin=1, end=5)) # args['step']에서 예외 발생
print("3 ~ 5 =", calcstep(end=10, step=2)) # args['begin']에서 예외 발생
결과
3 ~ 5 = 12
3 ~ 5 = 12
default 값 주기
def calcstep(**args): # <class 'dict'>
begin = args.get('begin', 1) # default 값으로 1
end = args['end'] # 필수 요소
step = args.get('step', 1) # default 값으로 1
total = 0
for num in range(begin, end+1, step):
total += num
return total
print("3 ~ 5 =", calcstep(begin=3, end=5, step=1))
print("3 ~ 5 =", calcstep(step=1, end=5, begin=3))
print("3 ~ 5 =", calcstep(begin=1, end=5))
print("3 ~ 5 =", calcstep(end=10, step=2))
결과
3 ~ 5 = 12
3 ~ 5 = 12
3 ~ 5 = 15
3 ~ 5 = 25
정리 예제
가변인수 정의할 때는 보통 *args
def fun(*args):
lst=[2, 5, 7]
fun(lst)
이 경우는 매개변수 1개 준 것 *args에 [2, 5, 7]
def fun(*args):
lst=[2, 5, 7]
fun(1, lst)
이 경우는 매개변수 2개 준 것 *args에 [1, [2, 5, 7]]
def fun(*args):
lst=[2, 5, 7]
fun(1, *lst, 2)
이 경우는 매개변수 5개 준것 *args에 [1, 2, 5, 7, 2] -> 펼치기
키워드 가변인수 정의할 때는 보통 **kwargs
def fun(**kwargs):
dic = {'a':1, 'b':2}
fun(dic)
이것은 위치기반의 매개변수이다.
def fun(**kwargs):
dic = {'a':1, 'b':2}
fun(**dic) # ( = fun(a=dic['a'], b=dic['b']) )
사전을 펼치는 것 ☆☆☆
일반 변수, 가변 변수, 키워드 가변 변수 모두 사용
- 일반 변수, 가변 변수, 키워드 가변 변수 순서로 배치
calcstep("김한슬", 99, 98, 95, 89, avg = False):
calcstep(name, *score, **option):
"김한슬" -> name
99, 98, 95, 89 -> *score
avg = False -> **option
'인터페이스 개발 > Python' 카테고리의 다른 글
Python - 컬렉션 관리[람다 함수] - filter, map, 람다 함수 (0) | 2020.07.26 |
---|---|
Python - 컬렉션 관리[컬렉션 관리 함수] - enumerate, zip, any(), all(), 변수명 표기법 (0) | 2020.07.26 |
Python - 사전과 집합[집합] - 집합 정의, 집합 연산 (0) | 2020.07.25 |
Python - 사전과 집합[예제] - login (0) | 2020.07.25 |
Python - 사전과 집합[사전] - 키와 값의 쌍, 사전 관리, 사전 활용 (0) | 2020.07.25 |
댓글