同一文件的多个文件句柄

时间:2014-04-18 14:35:56

标签: python python-2.7

所以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的基本机制是什么?创建此行为的理由是什么?

1 个答案:

答案 0 :(得分:3)

此处解释了基本机制:https://docs.python.org/2/library/stdtypes.html

  

某些类型(例如,文件对象)仅支持退化的比较概念,其中该类型的任何两个对象都是不相等的

     

...

     

除非类定义 eq ()方法或 cmp ()方法,否则类的非相同实例通常会比较为不相等。