You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何调用返回print函数调用结果的函数会触发打印?附Python示例

问题解答

先看你的代码:

def printing():
    print("Hello World! WOW SO ORIGINAL!!!!")

def returning():
    return printing()

returning()

为什么会出现这个现象?

核心原因是Python里的print()函数返回值是None:

  1. 调用returning()时,它会执行printing();
  2. printing()里的print语句会直接把字符串输出到控制台,这就是你看到的输出内容;
  3. print()执行完毕后返回None,所以printing()的返回值也是None;
  4. returning()把这个None返回,但你只是调用了returning(),没有打印它的返回值,所以控制台不会显示None;
  5. 程序正常执行完成,因此输出Process finished with exit code 0。

带参数的函数逻辑完全一致:只要函数里调用了print()(无论有没有参数),都会先输出内容,然后函数返回None,外层函数返回这个None,不主动打印的话就只会看到print的输出。

其他编程语言也是如此吗?

不同语言规则不同,主要分两类情况:

  • 强类型编译型语言(如Java、C、Go):这类语言对函数返回值有严格要求,无返回值的函数会被标记为void(Java/C)或声明为无返回值(Go),你不能把无返回值的函数作为返回值返回,编译器直接报错,根本到不了运行阶段。
  • 动态类型语言(如JavaScript):和Python类似,console.log()的返回值是undefined,如果写类似的嵌套调用代码,运行后也只会看到console.log的输出,返回的undefined不主动打印就不会显示。

内容的提问来源于stack exchange,提问作者Someone lol

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:05:42