프로그래밍/Python
[Python] 함수 인자 (argument)
eunki
2021. 6. 4. 20:31
728x90
인자 (argument)
def func(arg):
print(arg)
def func(arg):
print(arg)
func(1) # 1
def func(arg1, arg2):
print(arg1, arg2)
func('a', 'b') # a b
func('a') # Error
func('a', 'b', 'c') # Error
기본 인자 (default argument)
def func(arg=1):
print(arg)
def defaultArg(arg=0):
print(arg)
# 기본 인자값 사용
defaultArg() # 0
# 인자에 10 전달
defaultArg(10) # 10
def multiDefault(arg1=0, arg2=0, arg3=0):
print(arg1, arg2, arg3)
# 기본 인자값 사용
multiDefault() # 0 0 0
# 1번째 인자에 10 전달
multiDefault(10) # 10 0 0
# 1, 2번째 인자에 10, 20 전달
multiDefault(10, 20) # 10 20 0
# 1, 2, 3번째 인자에 10, 20, 30 전달
multiDefault(10, 20, 30) # 10 20 30
# 인자 명을 명시하여 사용
# arg3 인자에 30을 전달하고 나머지는 기본 인자값 사용
multiDefault(arg3=30) # 0 0 30
# arg2, arg3 인자에 20, 30을 전달하고 나머지는 기본 인자값 사용
multiDefault(arg2=20, arg3=30) # 0 20 30
디폴트 파라미터 뒤에 일반 파라미터가 위치할 수 없다.
def test(a, b, c = 1):
def test(a, b = 1, c = 2):
def test(a = 1, b = 1, c = 3):
def test(a, b = 1, c): # Error
def test(a = 1, b, c): # Error
def test(a = 1, b = 1, c): # Error
가변 인자 (variable argument)
지정된 수의 인자만을 사용하는 것이 아닌 가변적으로 변경되는 인자를 사용하고자 할 때 쓰인다.
def func(*args):
print(args)
def variableArg(*args):
print(args)
variableArg(1) # (1,)
variableArg(1, 2) # (1, 2)
variableArg(1, 2, 3) # (1, 2, 3)
variableArg(1, 2, 3, ('a', 'b')) # (1, 2, 3, ('a', 'b'))
def variableArg(arg, *args, darg=1):
print(arg, args, darg)
variableArg(1) # 1 () 1
variableArg(1, 2) # 1 (2,) 1
variableArg(1, 2, 3) # 1 (2, 3) 1
variableArg(1, 2, 3, darg=10) # 1 (2, 3) 10
키워드 가변 인자 (keyword variable argument)
지정된 수의 인자만을 사용하는 것이 아닌 가변적으로 변경되는 인자를 사용하고자 할 때 쓰인다.
인자를 사용할 때, 키=값의 쌍으로 사용한다.
def func(**kwargs):
print(kwargs)
def keyVariable(**kwargs):
print(kwargs)
keyVariable(a=10) # {'a': 10}
keyVariable(a=10, b=20) # {'a': 10, 'b': 20}
keyVariable(a=10, b=20, c=30) # {'a': 10, 'b': 20, 'c': 30}
def keyVariableArg(arg, *args, k=10, **kwargs):
print(arg, args, k, kwargs)
keyVariableArg(1) # 1 () 10 {}
keyVariableArg(1, 2) # 1 (2,) 10 {}
keyVariableArg(1, 2, 3) # 1 (2, 3) 10 {}
keyVariableArg(1, a=1) # 1 () 10 {'a': 1}
keyVariableArg(1, 2, 3, a=1) # 1 (2, 3) 10 {'a': 1}
keyVariableArg(1, 2, 3, a=1, b=2) # 1 (2, 3) 10 {'a': 1, 'b': 2}
keyVariableArg(1, 2, 3, a=1, b=2, k=3) # 1 (2, 3) 3 {'a': 1, 'b': 2}
728x90