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

Python 3.6.3中type(print("1"))为何先输出1再返回NoneType?

为什么type(print("1"))会先打印1再输出<class 'NoneType'>?

嗨,这个问题问得很到位!让我给你一步步拆解背后的原因:

  • Python的表达式求值顺序:当你运行type(print("1"))时,Python会先计算括号里的参数部分——也就是print("1"),因为外层的type()函数需要先拿到参数的值,才能执行自身的类型判断逻辑。
  • print()函数的特性:print()的核心作用是把内容输出到控制台,而它本身没有实际的返回值(或者说返回值是Python里专门表示“无返回”的None)。

所以整个执行流程是这样的:

  1. 先执行print("1"):这一步会直接在控制台打印出1,同时这个表达式的结果是None。
  2. 接着把这个None作为参数传给type()函数,type()会返回None的类型<class 'NoneType'>,并将这个结果输出。

你可以试着单独跑两行代码验证一下:

result = print("1")
print(result)

运行后会先输出1,然后输出None,这和你原来的问题本质是一样的——只不过原来的代码是用type()去判断了print()返回的None的类型而已。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:37:21