【发布时间】:2013-12-02 06:22:44
【问题描述】:
我想知道如何检查两个函数是否相同。一个例子是(lambda x: x) == (lambda y: y) 评估为真。据我所知,Python会检查函数是否在内存中占据相同的位置,而不是它们是否具有相同的操作。我知道拥有该功能似乎不切实际。
另一种解决方案是我可以在函数上运行一些方法来查看它包含什么或它是如何工作的。所以一种(lambda x: x).what() 会返回该方法的工作原理,可能在字典或其他东西中。
我很想得到答案,但我怀疑这是可能的。
【问题讨论】:
-
... 尽管 Python 问题的答案似乎假设无法直接获取字节码,因此您必须对其进行反汇编,然后尝试去除反汇编程序从源代码中添加的所有额外内容除了字节码,当它实际上完全有可能(而且更简单)直接获取字节码时,这很愚蠢......
-
如果其他人来这里了解如何比较同一函数的两个引用:
f==g适合我