>백엔드 개발 >파이썬 튜토리얼 >Python 함수 매개변수에서 `*args`와 `kwargs`의 차이점은 무엇입니까?

Python 함수 매개변수에서 `*args`와 `kwargs`의 차이점은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-29 03:18:18138검색

What's the Difference Between `*args` and `kwargs` in Python Function Parameters?

함수 매개변수에서 (이중 별) 및 (별)의 중요성 공개*

Python에서 함수 args 및 *kwargs로 표시된 매개변수는 임의의 항목을 수용하는 다양한 메커니즘으로 사용됩니다.

*args로 위치 인수 압축 풀기

*args 매개변수는 미리 정의된 인수를 초과하는 모든 위치 인수를 튜플로 수집합니다. 예를 들면 다음과 같습니다.

def foo(*args):
    for arg in args:
        print(arg)

이 함수는 다음과 같이 임의 개수의 위치 인수를 허용할 수 있습니다.

foo(1)  # Output: 1
foo(1, 2, 3)  # Output: 1 2 3

kwargs**

반면에 **kwargs는 모든 키워드 인수를 Dictionary.

def bar(**kwargs):
    for key, value in kwargs.items():
        print(key, value)
키워드 인수를 사용하여 이 함수를 호출하면 다음과 같은 결과가 나옵니다.

bar(name='John', age=30)  # Output: name John, age 30

args와 kwargs*두 관용어를 결합하여 고정 및 가변을 혼합할 수 있습니다. 인수:

이 함수는 다음과 같이 호출할 수 있습니다.
def foo(kind, *args, bar=None, **kwargs):
    print(kind, args, bar, kwargs)

foo(123, 'a', 'b', apple='red')  # Output: 123 ('a', 'b') None {'apple': 'red'}
추가 사용 사례

    포장 풀기 인수 목록:
  • 호출 시 인수 목록을 풀기 위해 * 관용구를 사용할 수 있습니다. 함수:
def foo(bar, lee):
    print(bar, lee)

baz = [1, 2]
foo(*baz)  # Output: 1 2
    Extended Iterable Unpacking(Python 3):
  • *는 할당의 왼쪽에서 사용할 수 있습니다. 목록:
first, *rest = [1, 2, 3, 4]
# first = 1
# rest = [2, 3, 4]
    키워드 전용 인수(Python 3):
  • 함수는 다음 구문을 사용하여 키워드 인수를 제한할 수 있습니다.
이 함수에는 3개의 위치 인수와 그 뒤에 원하는 개수의 키워드 인수가 필요합니다. *.
def func(arg1, arg2, arg3, *, kwarg1, kwarg2):
    pass

위 내용은 Python 함수 매개변수에서 `*args`와 `kwargs`의 차이점은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.