我的代码:
def f0():
return 1
def f1():
print("I don't deserve to be first :(")
print(f0(), f1())
预期输出:
1 I don't deserve to be first :(
None
实际输出:
I don't deserve to be first :(
1 None
我认为它必须对 sys.__stdout__
的默认行为做一些事情
在 Python 文档中我能找到与我的问题相关的详细信息的正是我感兴趣的内容。
或者可能有人直接在这里解释(?)
最佳答案
与标准输出无关,而是与打印值的时间有关。您的 f0
首先被调用,但它不打印任何内容。你的 f1
被称为 second,但它实际上打印了一些东西。
顶级 print()
调用不会打印任何东西,直到它评估了它的参数,这是按参数顺序执行的。因此,f0
被调用,除了返回 1
什么都不打印,f1
被调用并打印消息但返回 None
. print
的参数值,即两个函数(1
和 None
)的返回值,然后按顺序打印。
tl;dr:打印和返回是不同的东西
关于python - 为什么 "printing"出现在 "returning"之前?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54521426/