【发布时间】:2016-02-26 18:13:30
【问题描述】:
过去,codecs 被 io 取代。尽管使用io.open 似乎更可取,但大多数入门python 课程仍然教授open。
Difference between open and codecs.open in Python 有个问题,但 open 只是 io.open 的鸭子类型?
如果不是,为什么使用io.open 更好?为什么使用open 教学更容易?
在这篇文章 (http://code.activestate.com/lists/python-list/681909/) 中,Steven DAprano 说内置的 open 在后端使用 io.open。 那么我们是否都应该重构我们的代码以使用open 而不是io.open?
除了向后兼容py2.x之外,还有什么理由在py3.0中使用io.open而不是open?
【问题讨论】:
-
查看
help(open),你会发现它和io.open()是一样的——甚至标题都写着Help on built-in function open in module io,也就是说,没有理由使用io.open()if你正在用 Python 3 编写程序。 -
@TimPietzcker,
io.open只是为了向后兼容,对吧?如果是这样,我应该开始更改python3的所有课程材料=) -
是的,可能。它使从 2.x 到 3.x 的移植更容易,但如果您是从 3.x 开始,则没有必要让这变得更复杂。
标签: python file python-3.x io python-2.x