Python에서 *(이중 별표/별표) 및 (별표) /별표) 함수 정의 및 호출의 표기법은 변수 처리에 중요한 역할을 합니다. 인수.
구문
def foo(x, y, **kwargs): pass
은 foo 함수가 임의 개수의 키워드 인수를 허용할 수 있음을 나타냅니다. 이러한 키워드 인수는 kwargs라는 사전에 수집됩니다. 예를 들면 다음과 같습니다.
def bar(**kwargs): for a in kwargs: print(a, kwargs[a]) # Call the function bar(name='one', age=27) # Output: # name one # age 27
마찬가지로 구문
def foo(x, y, *args): pass
을 사용하면 foo 함수가 임의 개수의 위치 인수를 허용할 수 있습니다. 이러한 인수는 args라는 튜플로 수집됩니다.
def foo(*args): for a in args: print(a) # Call the function foo(1) # Output: 1 foo(1, 2, 3) # Output: 1 # Output: 2 # Output: 3
*kwargs와 args를 모두 함께 사용할 수 있습니다. 고정 인수와 가변 인수를 모두 허용합니다. 예를 들면 다음과 같습니다.
def foo(kind, *args, bar=None, **kwargs): print(kind, args, bar, kwargs) # Call the function foo(123, 'a', 'b', apple='red') # Output: 123 ('a', 'b') None {'apple': 'red'}
* 표기법은 함수를 호출할 때 인수 목록을 압축 해제하는 데에도 사용할 수 있습니다. 예:
def foo(bar, lee): print(bar, lee) # Create a list baz = [1, 2] # Call the function using unpacking foo(*baz) # Output: 1 2
Python 3.8 이상에서는 다음을 사용하여 함수 정의에 위치 전용 매개변수를 지정할 수 있습니다. * 일반 매개변수 앞에 표기:
def func(arg1, arg2, arg3, *, kwarg1, kwarg2): pass
이 함수는 세 개의 위치 인수와 추가 인수만 허용합니다. 키워드 인수로 전달되어야 합니다.
Python 3.6 이상에서는 키워드 인수의 순서가 kwargs 사전에 유지됩니다. 이는 함수에 전달된 인수의 순서를 유지해야 하는 경우와 같은 특정 시나리오에서 유용할 수 있습니다.
위 내용은 *args 및 kwargs는 Python 함수 정의 및 호출에서 어떻게 작동합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!