def adder(*args):
result = 0
for i in args:
result += i
return result
이렇게 *args
하면 입력값이 몇 개이든 상관 없이 입력값을 모두 모아서 튜플로 만들어준다.
함수 입력 파라미터로 꼭 *args
만 있어야 하는 건 아니고, 다른 입력도 받을 수 있다. 그 예는 아래와 같다.
def calc(action, *numbers):
if(action == 'add'):
result = 0
for number in numbers:
result += number
return result
elif(action == 'sub'):
result = numbers[0]
for number in numbers[1:]:
result -= number
return result
elif(action == 'mul'):
result = 1
for number in numbers:
result *= number
return result
else:
print("invalid input")
return False
print(calc('add', 1,2,3,4,5)) # 15
print(calc('sub', 1,2,3,4,5)) # -13
print(calc('mul', 1,2,3,4,5)) # 120
다음은 키워드 파라미터에 대한 이야기이다.
키워드 파라미터는 매개변수를 딕셔너리로 만든다.
다음과 같이 예제를 만들 수 있다.
def kwargs_example(**kwargs):
print(kwargs)
kwargs_example(name='apple', price=1200) # {'name': 'apple', 'price': 1200}
매개변수 이름 앞에 **
를 붙이면 매개변수는 딕셔너리가 된다.