함수는 호출될때 특정 기능을 실행하는 재사용가능한 코드 블록. 코드를 보다 모듈화하고 재사용할 수 있도록 도와줌.
# 기본구조
def functionName():
# 실행코드
# 함수호출
functionName()
정보를 인수로 함수에 전달할 수 있음. 함수 이름 뒤 괄호안에 인수를 지정함. 원하는 만큼 인수를 추가할 수 있고 쉼표로 구분하면 됨.
def functionName(args1, args2):
# 실행코드
# 함수호출
functionName(args1, args2)
parameter(매개변수)와 argument(인수)는 같은 의미로 사용할 수 있으나, 매개변수는 함수 정의의 괄호 안에 나열된 변수. 인수는 함수가 호출될때 함수로 전송되는 값.
Arbitrary Arguments, *args
함수에 전달할 인수가 몇개인지 모르는 경우, 함수정의시 매개변수 이름 앞에 *를 추가함. 함수는 튜플인수를 수신하게됨.
def functionName(*args):
print(args[2])
# 함수호출
functionName(args1, args2, args3)
Keyword Arguments
함수호출시에 인수로 key=value구문을 이용해서 보낼 수 있음. key=value를 사용하면 순서는 중요하지 않음.
def functionName(args3, args2, args1):
# 실행코드
functionName(args1="value1", args2="value2", args3="value3")
Arbitrary Keyword Arguments, **kwargs
함수에 전달할 keyword arguments가 몇개인지 모르는 경우 함수정의의 매개변수이름앞에 **를 추가함
def functionName(**args):
print(args["arg1"]
# 함수호출
functionName(arg1="value1", arg2="value2", arg3="value3")
Default Parameter Value
인수를 전달하면 인수로 출력되고, 인수없이 함수를 호출하면 기본값으로 사용됨.
def functionName(arg = "value"):
# 실행코드
# 함수호출
functionName()
Positional-Only Arguments
함수에 positional 인수만 전달할수 있도록 지정.
def functionName(args, /):
# 실행코드
# 함수호출
functionName(args)
# 에러
def functionName(args, /):
# 실행코드
# 함수호출
functionName(args="value")
Keyword-Only Arguments
함수에 keyword arguments만 전달할 수 있도록 지정
def functionName(*, args):
# 실행코드
# 함수호출
functionName(args="value")
# 에러
def functionName(*, args):
# 실행코드
# 함수호출
functionName(args)
Combine Positional-Only and Keyword-Only
postional arguments와 keyword arguments를 동시에 사용가능하다..
/, 앞에는 positional arguments를 *, 뒤에는 keyword arguments만 사용
def functionName(args1, args2, /, *, args3, args4):
# 실행코드
# 함수호출
functionName(arg1, arg2, arg3="value3", arg4="value4")