可能重复:
Python - 何时使用文件vs打开
从官方python文档,
http://docs.python.org/library/functions.html#file
打开文件时,最好使用open()而不是直接调用此构造函数
但它没有给出理由.
jfs*_*jfs 15
应该有一个 - 最好只有一个 - 明显的方法来做到这一点.
所以要么file
或open
应该去.
>>> type(file)
<type 'type'>
>>> type(open)
<type 'builtin_function_or_method'>
Run Code Online (Sandbox Code Playgroud)
open
是一个可以返回任何东西的函数.file()
仅返回file
对象.
虽然它似乎open
只返回file
对象上的Python 2和之前的Python 2.5 file
和open
是同一个对象.
正如@gnibbler在评论中建议的那样,存在的原因file
可能是将其用作基类的名称.
另外,file()
原则上可以返回其他类型,例如int()
早期的Python版本:
>>> type(int(2**64)) is long
True
>>> type(int()) is int
True
>>> int is long
False
Run Code Online (Sandbox Code Playgroud)
这个答案与@ Ryan的答案非常相似.
另外BDFL说:
"文件类在Python 2.2中是新的.它表示内置的open()函数返回的对象的类型(类).它的构造函数是open()的别名,但是为了将来和向后兼容,open()仍然是首选." (强调我的)