同一文件的多个文件句柄



所以这个问题引起了我的思考。我对同一个文件的多个文件句柄进行了一些测试,发现了一些奇怪的结果,我希望有人能解释。

>>> 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的基本机制是什么?创建这种行为的基本原理是什么?

下面解释了底层机制:https://docs.python.org/2/library/stdtypes.html

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

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

最新更新