Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 为什么在Python(2.7.11)中相同的部分比较时不相等?_Python 2.7_Partials - Fatal编程技术网

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

Python 2.7 为什么在Python(2.7.11)中相同的部分比较时不相等?,python-2.7,partials,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=

以下代码:

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不应该吗?

我更深入地研究了实现,分部对象似乎只是一个具有上述属性的内部函数。除非函数是同一个对象,否则它们永远不会比较相等。遗憾的是,我有一个用例,但有几个解决方法。

最具挑战性的方法可能是创建一个基于类的替换,它定义了
\uuuuuueq\uuuq()