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. 집합

관련 링크