> 백엔드 개발 > 파이썬 튜토리얼 > 단일 및 이중 별 연산자(*) 및 ()는 Python 함수 정의에서 변수 인수를 어떻게 처리합니까?

단일 및 이중 별 연산자(*) 및 ()는 Python 함수 정의에서 변수 인수를 어떻게 처리합니까?

Linda Hamilton
풀어 주다: 2024-12-24 16:57:10
원래의
771명이 탐색했습니다.

How Do Single and Double Star Operators (*) and () Handle Variable Arguments in Python Function Definitions?

매개변수 압축 해제: 함수 정의의 *

Python의 함수 정의는 (별표)를 활용할 수 있습니다. ) 및 *(이중 별) 연산자를 사용하여 다양한 수의 인수.

단일 별 연산자(*)

연산자("var-args" 또는 "splat"라고도 함)는 전달된 모든 위치 인수를 수집합니다. 함수를 args라는 튜플로 만듭니다. 예를 들어, 아래 정의에서

def foo(x, y, *args):
    pass
로그인 후 복사

args가 foo(1, 2, 3, 4, 5)로 호출되면 args 튜플 (3, 4, 5)가 포함됩니다.

더블 스타 연산자 ()**

연산자("var-kwargs" 또는 "keyword splat"이라고도 함)는 모든 키워드 인수를 kwargs**라는 사전으로 캡처합니다. 다음 정의에서:

def bar(x, y, **kwargs):
    pass
로그인 후 복사

bar가 bar(1, 2, name='Alice', age=30)로 호출되면 kwargs 사전에는 {'name': 'Alice', 'age':가 포함됩니다. 30}.

표준 인수와 가변 인수 혼합

함수 정의는 *:

def foo(kind, *args, bar=None, **kwargs):
    pass
로그인 후 복사

를 사용하여 일반 인수와 가변 인수를 결합할 수 있습니다. foo(123, 'a', 'b', apple='red'), 변수 'kind', 'args', 'bar' 및 'kwargs'에는 다음이 포함됩니다.

  • kind = 123
  • args = ('a ', 'b')
  • 바 = None
  • kwargs = {'apple': 'red'}

Unpacking Argument Lists

*: unpack에도 사용할 수 있습니다. 함수 호출 시 인수 목록:

def foo(bar, lee):
    pass

baz = [1, 2]

foo(*baz) # Unpacks baz into [1, 2] for bar and lee
로그인 후 복사

확장 반복 가능한 압축 풀기(Python 3)

Python 3에서는 할당 왼쪽에 *l을 사용하여 반복 가능한 항목을 여러 변수로 압축 해제할 수 있습니다.

first, *rest = [1, 2, 3, 4] # first = 1, rest = [2, 3, 4]
로그인 후 복사

키워드 전용 인수(Python 3)

Python 3에는 키워드 전용 인수가 도입되었습니다. 여기서 *: 뒤에는 키워드 인수만 허용됩니다.

def func(arg1, arg2, arg3, *, kwarg1, kwarg2):
    pass
로그인 후 복사

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

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