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

关于Python print()函数的两项技术疑问咨询

Python print()函数相关问题解析

相关代码

print("Line 1")
print(">>>")
type(print("Hello"))
print()

print("Line 2")
print(">>>")
print(print("Hello"))
print()

print("Line 3")
print(">>>")
a = print("Hello")
b = a
print("a:", a, "b:", b)

Python 3.9版本运行输出

Line 1
>>>
Hello

Line 2
>>>
Hello
None

Line 3
>>>
Hello
a: None b: None

问题解答

1. 在代码的Line 1部分,print("Hello")会返回None,为何type(print("Hello"))的执行结果未被输出?

Python里只有两种情况会自动输出表达式结果:一是在交互式命令行直接输入表达式回车,二是把表达式作为print()的参数打印。Line1中的type(print("Hello"))只是算出了结果(也就是<class 'NoneType'>),但没有用print()输出这个结果,所以你看不到它。而print("Hello")本身是函数调用,执行时会直接打印"Hello",但它的返回值类型结果因为没被主动打印,自然不会显示。

2. 已知IIFE(立即调用函数表达式)是JavaScript的相关术语,为何Python的print()函数会表现出类似IIFE的特性,例如被调用时立即执行(如Line 3的输出所示)?

这和IIFE完全是两码事。Python里所有函数只要加了括号调用,就会立即执行,这是Python函数调用的基本规则,不是什么特殊特性。比如Line3里的a = print("Hello"),Python会先执行等号右边的print("Hello")(所以先打出"Hello"),再把它的返回值None赋值给变量a。而JS的IIFE是为了创建独立作用域专门设计的立即执行匿名函数的写法,和Python这种常规函数调用逻辑根本不是一个概念。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:08