Python Args 및 Kwargs
Python args and kwargs Made Easy
*args 및 **kwargs는 무서울 수 있지만, 사실 이해하기 어렵지 않으며 함수에 많은 유연성을 부여할 수 있는 힘을 가지고 있습니다.
더 깊은 소개를 원하시면 Python *args 및 **kwargs 쉽게 사용하기 문서를 읽어보세요.
Args 및 Kwargs
*args와 **kwargs를 사용하면 함수를 호출할 때 정의되지 않은 수의 인자 및 키워드를 전달할 수 있습니다.
# 임의의 수의 위치 인수 및 키워드 인수를 허용하는 함수 정의
def some_function(*args, **kwargs):
pass
# 임의의 수의 위치 인수로 호출
some_function(arg1, arg2, arg3)
# 임의의 수의 키워드 인수로 호출
some_function(key1=arg1, key2=arg2, key3=arg3)
# 위치 인수와 키워드 인수를 모두 사용하여 호출
some_function(arg, key1=arg1)
# 또는 인자 없이 호출
some_function()
Python 관례
*args와 **kwargs라는 단어는 관례입니다. 인터프리터에 의해 강제되는 것은 아니지만 Python 커뮤니티에서는 좋은 습관으로 간주됩니다.
args
args 변수를 통해 인수에 접근할 수 있습니다.
# *args 는 위치 인수를 튜플로 수집합니다
def some_function(*args):
print(f'Arguments passed: {args} as {type(args)}')
# 여러 인수를 전달하면 args 튜플로 수집됩니다
some_function('arg1', 'arg2', 'arg3')
Arguments passed: ('arg1', 'arg2', 'arg3') as <class 'tuple'>
퀴즈
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
*args는 인수를 어떤 데이터 타입으로 수집합니까?A. 리스트
B. 튜플
C. 딕셔너리
D. 집합
kwargs
kwargs 변수를 통해 키워드에 접근할 수 있습니다.
# **kwargs 는 키워드 인수를 딕셔너리로 수집합니다
def some_function(**kwargs):
print(f'keywords: {kwargs} as {type(kwargs)}')
# 키워드 인수를 전달하면 kwargs 딕셔너리로 수집됩니다
some_function(key1='arg1', key2='arg2')
keywords: {'key1': 'arg1', 'key2': 'arg2'} as <class 'dict'>
퀴즈
로그인하여 이 퀴즈에 답하고 학습 진행 상황을 추적하세요
**kwargs는 인수를 어떤 데이터 타입으로 수집합니까?A. 리스트
B. 튜플
C. 딕셔너리
D. 집합