您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

为什么在Python中open()优于file()?

为什么在Python中open()优于file()?

Python的禅宗

应该有一种-最好只有一种-显而易见的方法

因此,要么file还是open应该去。

>>> type(file)
<type 'type'>
>>> type(open)
<type 'builtin_function_or_method'>

open是可以返回任何内容函数file()仅返回file对象。

虽然似乎open只返回filePython 2上的对象,但在Python 2.5file和之前open是相同的对象。

正如@gnibbler在评论中所建议的那样,存在的最初原因file可能是将其用作基类的名称

同样,file()原则上可以返回其他类型,例如int()在早期的Python版本中:

>>> type(int(2**64)) is long
True
>>> type(int()) is int
True
>>> int is long
False

这个答案与@Ryan的答案非常相似。

原因有两个:python哲学“应该有一种方法可以做到”并且file正在消失。

file是实际类型(使用例如file(‘myfile.txt’)调用其构造函数)。open是工厂函数,它将返回文件对象。

在python 3.0file中,它将从内置功能转变为由io库中的多个类实现(有点类似于带有缓冲读取器的Java等)。

另外BDFL说

文件类是Python 2.2中的新类。它表示内置的open()函数返回的对象的类型(类)。它的构造函数是open()的别名,但对于将来和向后的兼容性 ,open()仍然是首选。” (强调我的)

python 2022/1/1 18:37:53 有260人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶