我有以下 Python 代码来编写项目的依赖文件。它在 Python 2.x 上运行良好,但在使用 Python 3 测试时报告错误。
depend = None
if not nmake:
depend = open(".depend", "a")
dependmak = open(".depend.mak", "a")
depend = open(".depend", "a")
print >>depend, s,
这是错误:
Traceback (most recent call last):
File "../../../../config/makedepend.py", line 121, in <module>
print >>depend, s,
TypeError: unsupported operand type(s) for >>:
'builtin_function_or_method' and '_io.TextIOWrapper'
使用 Python 2.x 和 3.x 的最佳方式是什么?
原文由 José 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 Python 3 中,print 语句变成了一个函数。新语法如下所示:
Python 3 中的这一重大变化意味着在使用
print
语句/函数写入文件时,不可能在 Python 2 和 3 中使用相同的代码。一种可能的选择是使用depend.write(s)
而不是打印。更新:JF Sebastian 正确地指出您可以在 Python 2 代码中使用
from __future__ import print_function
来启用 Python 3 语法。这将是跨不同 Python 版本使用相同代码的绝佳方式。