Jos*_*osé 27 python python-3.x
我有以下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,
Run Code Online (Sandbox Code Playgroud)
这是错误:
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'
Run Code Online (Sandbox Code Playgroud)
使用Python 2.x和3.x的最佳方法是什么?
Dav*_*nan 40
在Python 3中,print语句已成为一个函数.新语法如下所示:
print(s, end="", file=depend)
Run Code Online (Sandbox Code Playgroud)
Python 3中的这一重大变化意味着在使用print语句/函数写入文件时,不可能在Python 2和3中使用相同的代码.一种可能的选择是使用depend.write(s)而不是打印.
更新:JF Sebastian正确地指出您可以from __future__ import print_function在Python 2代码中使用以启用Python 3语法.这将是在不同的Python版本中使用相同代码的绝佳方式.
Amb*_*ber 11
print() 是Python 3中的一个函数.
将代码更改为print(s, end="", file=depend),或让2to3工具为您执行此操作.
| 归档时间: |
|
| 查看次数: |
36219 次 |
| 最近记录: |