首页 > > > 为什么 Python 3 把 print 改为函数?
设计规格
print() 的书写方式取自各种邮件,最近发布在 python-3000 列表里的:
def print(*args, sep=' ', end='\n', file=None)
调用像:
print(a, b, c, file=sys.stderr)
相当于当前的:
print >>sys.stderr, a, b, c
可选的 sep 与 end 参数相应地指定了每个打印参数之间及之后的内容。
向后兼容性
本 PEP 中提出的改动将致使如今的 print 语句失效。只有那些恰好用括号包围了所有参数的写法才能在 Python 3 版本中生效,至于其它,只有加上了括号的值才能保持原样打印。例如,在 2.x 中:
>>> print ("Hello")Hello>>> print ("Hello", "world")('Hello', 'world')
而在 3.0 中:
>>> print ("Hello")Hello>>> print ("Hello", "world")Hello world
幸运的是,因为 print 是 Python 2 中的一个语句,所以它可以被通过自动化工具而检测到,并可靠而精确地替换掉,因此应该没有重大的移植问题(如果有人来写这个工具的话)。
实现
更改将在 Python 3000 分支中实现(修订版从 53685 到 53704)。大多数在维库代码(legacy code)已经做转换了,但要抓出发行版本中的每个 print 语句,还需要持续不断地努力。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/4822/viewspace-3159657/ ,如需转载,请注明出处,否则将追究法律责任。