> 백엔드 개발 > 파이썬 튜토리얼 > functools.partial은 Python에서 함수 호출을 어떻게 단순화할 수 있습니까?

functools.partial은 Python에서 함수 호출을 어떻게 단순화할 수 있습니까?

Mary-Kate Olsen
풀어 주다: 2024-12-10 22:28:17
원래의
584명이 탐색했습니다.

How Can functools.partial Simplify Function Calls in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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