파이썬 함수의 파라미터, 인수 위치
- 함수를 정의 할때 default value parameter를 non-default value parameter 앞에 정의 하면 안 되는 이유
기본값을 설정해주는 이유는 함수 호출시 해당 인자값 입력을 생략할 수 있게 해주기 위함인데 만약에
def function(a = 1, b):
return a, b
이런 식으로 default value parameter를 앞에 정의하면
함수 호출시
function(1, 3)
function(1, 8)
처럼 해당 인자값을 입력해주어야 한다.
그러므로 파라미터의 기본값을 설정하려면 모두 뒤쪽에.
- 위치 인수(positional arguments)와 가변 인수(variable length arguments)의 위치
- 아래 코드는 오류를 발생시킨다.
def func_param_with_var_args(name, *args, age):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("정우성", "01012341234", "seoul", 20)
=>
Traceback (most recent call last):
File "main.py", line 9, in <module>
func_param_with_var_args("정우성", "01012341234", "seoul", 20)
TypeError: func_param_with_var_args() missing 1 required keyword-only argument: 'age'
수정해 봐야겠다.
def func_param_with_var_args(name, age, *args):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
func_param_with_var_args("정우성", 20, "01012341234", "seoul")
=>
name=정우성
args=('01012341234', 'seoul')
age=20
- 가변 키워드 인수 (variable length keyword arguments)의 위치
- 아래 코드는 오류를 발생시킨다.
def func_param_with_kwargs(name, age, **kwargs, address=0):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
=>
File "main.py", line 1
def func_param_with_kwargs(name, age, **kwargs, address=0):
^
SyntaxError: invalid syntax
또 수정해봐야겠다.
def func_param_with_kwargs(name, age, address=0, **kwargs,):
print("name=",end=""), print(name)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
func_param_with_kwargs("정우성", "20", mobile="01012341234", address="seoul")
=>
name=정우성
age=20
kwargs={'mobile': '01012341234'}
address=seoul
- 위치 인수와 키워드 가변 키워드 인수 (variable length keyword arguments)의 위치
아래 코드는 오류가 난다.
def mixed_params(name="아이유", *args, age, **kwargs, address):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
수정해보자
def mixed_params(age, name="아이유", *args, address, **kwargs):
print("name=",end=""), print(name)
print("args=",end=""), print(args)
print("age=",end=""), print(age)
print("kwargs=",end=""), print(kwargs)
print("address=",end=""), print(address)
mixed_params(20, "정우성", "01012341234", "male" ,mobile="01012341234", address="seoul")
=>
name=정우성
args=('01012341234', 'male')
age=20
kwargs={'mobile': '01012341234'}
address=seoul
Author And Source
이 문제에 관하여(파이썬 함수의 파라미터, 인수 위치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@betmore/파이썬-함수의-파라미터-인수-위치저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)