>백엔드 개발 >파이썬 튜토리얼 >functools.partial을 사용하여 Python 함수에 대한 인수를 미리 정의하려면 어떻게 해야 합니까?

functools.partial을 사용하여 Python 함수에 대한 인수를 미리 정의하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-15 09:42:12621검색

How Can I Predefine Arguments for Python Functions Using functools.partial?

Python 함수의 인수 바인딩 이해

미리 정의된 특정 인수를 사용하거나 더 적은 추가 인수를 사용하여 나중에 호출할 수 있는 함수를 생성한다고 가정해 보겠습니다. 인수. Python에서 이를 어떻게 달성할 수 있나요?

해결책: functools.partial

해결책은 functools.partial 함수를 사용하는 데 있습니다. 이는 인수의 일부 또는 전체가 고정된 함수를 래핑하는 콜러블을 반환합니다. 이렇게 하면 고정된 인수가 이미 적용된 래핑된 함수를 나중에 호출할 수 있습니다.

사용 예

다음을 사용하여 인수를 바인딩하는 방법을 살펴보겠습니다. functools.partial:

import functools
  
print_hello = functools.partial(sys.stdout.write, "Hello world\n")
  
print_hello()

출력:

Hello world

이 코드는 호출 시 항상 "Hello world"를 인쇄하는 print_hello 함수를 생성합니다. functools.partial 함수는 sys.stdout.write의 첫 번째 인수를 "Hello world" 문자열에 바인딩했습니다.

동등한 람다 표현식

위의 코드는 동일합니다. 다음 람다 식으로 변환합니다.

print_hello = lambda *a, **kw: sys.stdout.write("Hello world\n", *a, **kw)

즉, functools.partial은 편리한 기존 함수에 인수를 부분적으로 적용하여 새 함수를 만드는 방법입니다.

위 내용은 functools.partial을 사용하여 Python 함수에 대한 인수를 미리 정의하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.