원본 : http://blog.gqylpy.com/gqy/349
"
파이썬 functools모듈 유용한 다양한 기능 중 하나가 제공 偏函数
(일부 기능). 동일하지 여기 부분 함수 수학적 의미 그 일부 기능을 참고.
functools.partial우리는 부분적인 기능, 다음 예제를 만들 수 있습니다 :
"""自己定义的偏函数"""
def int1(x, base=2):
return int(x, base)
print(int1('10000000')) # 128
# =======================================
# =======================================
"""通过functools.partial定义的偏函数"""
import functools
int2 = functools.partial(int, base=2)
print(int1('10000000')) # 128
# 上面仅仅是把base参数重设默认值为2,所以还是可以指定base的值的
print(int1('10101010', base=10)) # 10101010
그래서, 간단한 요약 functools.partial역할 (즉, 기본값을 설정), 함수는 새를 돌려 고정의 기능에 몇 가지 매개 변수를 넣어하는 것입니다 밖으로 새로운 기능을 쉽게 될 것입니다.
당신은 부분 당신이 실제로받을 수있는 기능을 만들 때
函数对象
,*args
그리고**kwargs
세 개의 매개 변수
***
이 같은를 :int2 = functools.partial(int, base=2)
실제로 주요 파라미터의 INT () 함수에 고정
base
즉을 :int2('10000000')
그것은 동일합니다 :
kwargs = {'base': 2} int('10000000', **kwargs)
또 다른 예 :
max2 = functools.partial(max, 10)
사실, 것
10
같은*args
부분을 자동으로 왼쪽에 추가, 그 말을하는 것입니다 :max2(2, 3, 4)
그것은 동일합니다 :
args = (10, 2, 3, 4) max(*args)
결과
10
.
개요
매개 변수의 너무 많은 수를 통과 할 때 필요 단순화 할 때, 사용이 functools새로운 기능을 만들 수 있습니다,이 새로운 기능은 훨씬 간단하게 전화 할 때 살던 원래의 함수 매개 변수의 고정 부분이 될 수 있습니다.
"