オリジナル:http://106.13.73.98/__/124/
Pythonの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を呼び出すときに、新しい関数を作成することができ、この新しい機能は、元の関数のパラメータの固定された一部であってもよいがそんなに単純で住んでいました。