这可能是我缺少的一些愚蠢的东西,但它确实让我在写一个更大的项目(c
扩展名)上耽搁了。在
为什么print "Hello, World!"
在这里传递None
和一个额外的\n
到{
>>> import sys
>>> class StdOutHook:
... def write(self, text):
... sys.__stdout__.write("stdout hook received text: %s\n" % repr(text))
...
>>> class StdErrHook:
... def write(self, text):
... sys.__stderr__.write("stderr hook received text: %s\n" % repr(text))
...
>>> sys.stdout = StdOutHook()
>>> sys.stderr = StdErrHook()
>>>
>>> def x():
... print "Hello, World!"
...
>>>
>>> print x()
stdout hook received text: 'Hello, World!'
stdout hook received text: '\n'
stdout hook received text: 'None'
stdout hook received text: '\n'
>>>
两件事:
首先,“打印”会自动添加新行,除非您另有指定。如果不需要新行,请添加逗号:
其次,打印x()函数的返回值,该函数为None。函数
^{pr2}$f()
相当于:所以
print x()
打印None
。在将执行
print
并返回None
-在您编写print x()
之后,print
将生成其他新行,None
将被打印:)如果您希望消除额外的换行符,请将
^{pr2}$x
改为:print x()
打印x()
的返回值,该值隐式为None
将}
print "Hello world"
替换为return "Hello world"
,或者将print x()
替换为{相关问题 更多 >
编程相关推荐