栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

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

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

Python的禅宗:

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

因此,要么

file
还是
open
应该去。

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

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

虽然似乎

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

正如@gnibbler在评论中所建议的那样,存在的最初原因

file
可能是将其用作基类的名称。

同样,

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

>>> type(int(2**64)) is longTrue>>> type(int()) is intTrue>>> int is longFalse

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

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

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

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

另外BDFL说:

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



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/648066.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号