パーシャルとそれらをいつ使用するかについて学んでいます。この page about partials vs lambdasでは、受け入れられた答えは、partials
overの利点の 1 つはlambdas
、パーシャルがイントロスペクションに役立つ属性を持っていることであると説明しています。したがって、パーシャルを使用して次のことができます。
import functools
f = functools.partial(int, base=2)
print f.args, f.func, f.keywords
((), int, {'base': 2})
実際、次のようにすることはできませんlambdas
。
h = lambda x : int(x,base=2)
print h.args, h.func, h.keywords
AttributeError: 'function' object has no attribute 'args'
しかし実際には、「通常の」Python 関数でもそれを行うことはできません。
def g(x) :
return int(x,base=2)
print g.args, g.func, g.keywords
AttributeError: 'function' object has no attribute 'args'
パーシャルが通常の Python 関数よりも多くの機能を備えているのはなぜですか? そのような設計の意図は何ですか?イントロスペクションは通常の機能には役に立たないと考えられていますか?