Python에서 부분적으로 함수 적용
Python에서는 나중에 인수를 모두 제공하지 않고도 호출할 수 있도록 함수에 인수를 바인딩하는 것이 유용한 경우가 많습니다. 원래 주장 중. 부분 적용이라고 알려진 이 기술은 콜백 정의 및 클로저 작업을 포함한 다양한 시나리오에서 편리합니다.
부분 적용을 위한 functools.partial
Python은 functools를 제공합니다. .partial 인수를 부분적으로 적용하기 위한 함수입니다. functools.partial은 바인딩할 함수와 인수 집합을 가져와서 부분적으로 적용된 함수를 나타내는 새 콜러블을 반환합니다. 원래 함수는 바인딩된 인수와 함께 "동결"되어 있으므로 해당 인수를 명시적으로 지정하지 않고도 나중에 호출할 수 있습니다.
다음 예를 고려하세요.
import functools def add(x, y): return x + y add_5 = functools.partial(add, 5) assert add_5(3) == 8
이 예에서는 다음을 생성합니다. 첫 번째 인수를 5로 고정한 add 함수를 부분적으로 적용하여 add_5라는 함수를 만듭니다. 나중에 단일 인수로 add_5를 호출하여 추가를 수행할 수 있습니다. 이는 add(5, 인수).
사용 및 동등성
위 코드는 람다 함수를 사용하는 것과 유사합니다.
print_hello = lambda *a, **kw: sys.stdout.write("Hello world\n", *a, **kw)
그러나 functools.partial은 다음을 제공합니다. 객체지향 접근방식으로 부분적으로 적용된 부분을 더 쉽게 수정하고 검사할 수 있습니다.
부분 적용을 활용하면 코드 가독성을 높이고 실수로 인한 즉각적인 함수 평가를 방지하며 클로저의 지연 바인딩으로 인해 발생하는 문제를 완화할 수 있습니다. 이는 Python 코딩 무기고에 유연성을 추가하는 다용도 기술입니다.
위 내용은 functools.partial은 Python에서 함수 호출을 어떻게 단순화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!