所以this question让我思考。我用同一个文件的多个文件句柄做了一些测试,发现了一些奇怪的结果,我希望有人可以解释。
>>> f1 = open("test.txt",'w')
>>> f1.close()
>>> f1, f2 = open("test.txt", 'w'), open("test.txt", 'w')
>>> f1 == f2
False
>>> f1, f2 = open("test.txt", 'r'), open("test.txt", 'r')
>>> f1 == f2
False
为什么这些测试不会返回True
?当然,为同一文件分配句柄应该具有相同的值。
这些比较返回False
的基本机制是什么?创建此行为的理由是什么?
答案 0 :(得分:3)
此处解释了基本机制:https://docs.python.org/2/library/stdtypes.html
某些类型(例如,文件对象)仅支持退化的比较概念,其中该类型的任何两个对象都是不相等的
...
除非类定义 eq ()方法或 cmp ()方法,否则类的非相同实例通常会比较为不相等。