Python에서 매개변수 결합하기
동일한 함수에 명명된 매개변수와 위치 매개변수를 동시에
전달할 수 있습니다.
이는 * 기호를 사용하여 수행되며,
이 기호는 오른쪽에 지정된 매개변수가 기본값을
사용하지 않아야 하는 경우 명명된 매개변수로
간주해야 함을 나타냅니다.
모든 매개변수를 콘솔에 출력하는 함수를 만들어 봅시다.
변수 data는 일반적인 위치 매개변수를 나타냅니다.
그 다음 * 기호 뒤에 기본값이 있는 두 변수
start와 end가 지정됩니다.
그러나 함수를 호출할 때 이 변수들을 명명된 매개변수로
만듭시다:
def func(data, *, start=0, end=100):
print(data, start, end)
func(1, start=2, end=3)
코드 실행 결과:
1 2 3
반면 변수 start의 기본값을 제거하고 동시에
명명된 매개변수로 지정하지 않으면 오류가 발생합니다.
이는 * 기호가 이미 start를 명명된
변수로 정의했기 때문입니다:
def func(data, *, start, end=100):
print(data, start, end)
func(1, 2, end=3) # 오류를 출력합니다
다음 코드의 실행 결과는 무엇일까요:
def func(num1, num2, *, num3):
return (num1 + num2) * num3
print(func(2, 4, num3=3))
다음 코드의 실행 결과는 무엇일까요:
def func(num1, *, num2, num3):
return (num1 - num2) / num3
print(func(12, 4, num3=5))
다음 코드의 실행 결과는 무엇일까요:
def func(*, name='user1', age='18'):
return 'Username is ' + name + ' age is ' + age
print(func(name='john'))