我正在将HJB软件包从Python2移植到3。
它使用print
的output-stream选项-将其移植到Python3的最合适方法是什么?
def write_message(message, to=sys.__stdout__):
def handle_message():
print >> to, "*" * 60
print >> to, message
print >> to, "*" * 60
return handle_message
像这样:
def write_message(message, to=sys.__stdout__):
def handle_message():
star_line = "*" * 60
if ( sys.version_info < ( 3, 0 ) ):
print >> to, star_line
print >> to, message
print >> to, star_line
else:
print( star_line, file=to )
print( message, file=to )
print( star_line, file=to )
return handle_message
这么简单吗?
我从事python编程的时间已经超过了我想念的时间,但是之前从未遇到过这个“操作员”。
编辑:最终版本
from __future__ import print_function
...
def write_message(message, to=sys.__stdout__):
def handle_message():
star_line = "*" * 60
print( star_line, file=to )
print( message, file=to )
print( star_line, file=to )
return handle_message
最佳答案
我几乎肯定代码不会在Python 3中运行-它会产生语法错误。
相反,如果您的库支持的Python的最低版本为> = 2.6,则将from __future__ import print_function
添加到文件顶部,然后仅使用您已经在使用的Python3 file=
参数。
关于python - Python打印“>>”流修饰符-移植到python3,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60085312/