Skip to main content
 首页 » 编程设计

python之为什么 "printing"出现在 "returning"之前

2025年05月04日12grandyang

我的代码:

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:打印和返回是不同的东西