> 백엔드 개발 > 파이썬 튜토리얼 > Python 함수 호출에서 * 및 Unpack 인수를 어떻게 수행합니까?

Python 함수 호출에서 * 및 Unpack 인수를 어떻게 수행합니까?

DDD
풀어 주다: 2024-12-22 09:01:13
원래의
354명이 탐색했습니다.

How Do * and  Unpack Arguments in Python Function Calls?

Python 함수 호출에서 을 사용하여 인수 압축 풀기*

Python 함수 호출에서 별표( ) 및 이중 별표(*) 연산자는 언패킹 시퀀스에서 중요한 역할을 하며

단일 별표(*) 압축 해제:

단일 별표 연산자(*)는 시퀀스나 컬렉션을 위치 인수로 압축 해제합니다. 다음 함수를 고려해보세요.

def add(a, b):
    return a + b
로그인 후 복사

값 = (1, 2)의 튜플이 주어지면 튜플의 압축을 풀고 * 연산자를 사용하여 해당 요소를 add 함수에 전달할 수 있습니다.

s = add(*values)
로그인 후 복사

이것은 다음과 같습니다:

s = add(1, 2)
로그인 후 복사

Double Star () 압축 풀기:**

이중 별표 연산자(**)는 비슷한 원리를 따르지만 사전에서 작동합니다. 사전의 키-값 쌍을 명명된 인수로 압축 해제합니다:

values = { 'a': 1, 'b': 2 }
s = add(**values)
로그인 후 복사

이것은 다음과 동일합니다:

s = add(a=1, b=2)
로그인 후 복사

결합 압축 풀기:

단일 함수 호출에서 두 연산자를 동시에 사용할 수 있습니다. 예를 들어 함수가 다음과 같다면:

def sum(a, b, c, d):
    return a + b + c + d
로그인 후 복사

그리고 두 개의 값 세트:

values1 = (1, 2)
values2 = { 'c': 10, 'd': 15 }
로그인 후 복사

다음과 같이 이 값의 압축을 풀 수 있습니다.

s = add(*values1, **values2)
로그인 후 복사

이것은 해당 항목:

s = sum(1, 2, c=10, d=15)
로그인 후 복사

성능 의미:

* 압축 해제 연산자를 사용하면 일반적으로 성능에 미치는 영향이 최소화됩니다. 그러나 언팩 중인 시퀀스나 딕셔너리의 크기가 큰 경우 언팩 과정에서 추가적인 오버헤드가 발생할 수 있습니다. 이는 대부분의 실제 시나리오에서는 무시할 수 있습니다.

동등한 방법:

압축 해제 연산자를 사용하는 대신 *args 및 **kwargs 구문을 사용할 수도 있습니다. , 각각:

def add(*args, **kwargs):
    s = 0
    for arg in args:
        s += arg
    for key, value in kwargs.items():
        s += value
로그인 후 복사

궁극적으로 압축 해제 연산자 사용 또는 *args/**kwargs는 코드 스타일과 선호도에 따라 다릅니다.

위 내용은 Python 함수 호출에서 * 및 Unpack 인수를 어떻게 수행합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿