0

パーシャルとそれらをいつ使用するかについて学んでいます。この page about partials vs lambdasでは、受け入れられた答えは、partialsoverの利点の 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 関数よりも多くの機能を備えているのはなぜですか? そのような設計の意図は何ですか?イントロスペクションは通常の機能には役に立たないと考えられていますか?

4

1 に答える 1