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 중국어 웹사이트의 기타 관련 기사를 참조하세요!