Python – sys.stdout.write和print之间的区别

问题:

有没有sys.stdout.write()优于print的情况?
 例子:更好的表现;代码更有意义)

回答:

 print只是一个薄的包装器,用于格式化输入(最后在args和换行符之间的空格),并调用给定对象的写入函数。默认情况下,此对象为sys.stdout,但您可以使用“V形”形式传递文件。例如:

print >> open('file.txt', 'w'), 'Hello', 'World', 2+3

参见:https://docs.python.org/2/reference/simple_stmts.html?highlight=print#the-print-statement
在Python 3.x中,print成为一个函数,但是由于file参数,仍然可以传递除sys.stdout以外的其他内容。

print('Hello', 'World', 2+3, file=open('file.txt', 'w'))

https://docs.python.org/3/library/functions.html#print
在Python 2.6+中,print仍然是一个语句,但它可以用作一个函数

from __future__ import print_function

更新:Bakuriu在评论中指出的打印功能和print语句(更一般地,在函数和语句之间)有一些区别。
评估参数时发生错误:

print "something", 1/0, "other" #prints only something because 1/0 raise an Exception

print("something", 1/0, "other") #doesn't print anything. The func is not called

 
 Code问答: codewenda.com
Stackoverflow:Python – The difference between sys.stdout.write and print

发表评论

电子邮件地址不会被公开。 必填项已用*标注

63 − = 56