> 백엔드 개발 > 파이썬 튜토리얼 > 단일 및 이중 별표(*)는 Python 함수에서 인수를 어떻게 압축 해제합니까?

단일 및 이중 별표(*)는 Python 함수에서 인수를 어떻게 압축 해제합니까?

DDD
풀어 주다: 2024-12-20 11:08:09
원래의
696명이 탐색했습니다.

How Do Single and Double Asterisks (*) Unpack Arguments in Python Functions?

(이중 별표/별표)를 사용하여 Python에서 인수 압축 풀기*

Python에서 * 연산자는 호출 시 인수를 푸는 데 중요한 역할을 합니다. 함수.

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

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

아래 코드는 *를 사용하여 튜플 값을 압축 해제합니다.

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

이는 다음과 같습니다.

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

더블 스타 **:
더블 스타(**)는 다음과 같은 작업을 수행합니다. 명명된 인수에 대한 값을 제공하는 사전. 다음 함수를 고려하세요.

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

**를 사용하여 사전 값2의 압축을 풀면 다음이 생성됩니다.

values2 = { 'c': 10, 'd': 15 }
s = add(**values2)
로그인 후 복사

이는 다음과 같습니다.

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

조합:*
둘 다 *는 동일한 함수 호출에서 동시에 사용할 수 있습니다. 예를 들어:

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

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

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

매개변수 압축 해제:
인수 압축 해제 외에도 *는 함수에서 매개변수 압축 해제에도 사용할 수 있습니다. 정의.

  • *로 표시된 매개변수는 임의 개수의 위치 인수를 튜플로 받습니다.
  • **로 표시된 매개변수는 모든 키워드 인수를 사전으로 받습니다.

예:

def add(*values):
    # ...

def get_a(**values):
    # ...
로그인 후 복사

성능 의미:
* 사용으로 인한 성능 영향은 일반적으로 미미합니다. 압축 풀기 작업에는 최소한의 오버헤드가 포함되며 기능 자체의 효율성에는 영향을 미치지 않습니다. 그러나 과도한 언패킹은 코드의 가독성과 유지 관리성을 떨어뜨릴 수 있습니다.

위 내용은 단일 및 이중 별표(*)는 Python 함수에서 인수를 어떻게 압축 해제합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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