为什么相同的部分比较在Python(2.7.11)中不相等?

时间:2016-06-09 18:17:36

标签: python-2.7 partials

以下代码:

from functools import partial
def f(a):
    print a
g = partial(f, 1)
h = partial(f, 1)
assert(g == h)

引发断言错误。为什么呢?

Partial返回一个带有.func,.args和.keywords属性的可调用对象。在示例中:

g.func == h.func == f
g.args == h.args == (1,)
g.keywords == h.keywords == {}

不应该g == h?

1 个答案:

答案 0 :(得分:1)

我更多地了解了实现,而部分对象似乎只是具有上述属性的内部函数。函数永远不会相等,除非它们是同一个对象。可惜,我有一个用例,但有几种解决方法。