我正在学习部分以及何时使用它们。在这个关于partials vs lambdaspartials
的页面中,接受的答案解释了over的优点之一lambdas
,即 partials 具有对内省有用的属性。所以我们可以用部分做以下事情:
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'
为什么 partials 比普通的 Python 函数有更多的功能?这种设计的意图是什么?内省是否被认为对正常功能无用?