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)。
所以整个执行流程是这样的:
- 先执行
print("1"):这一步会直接在控制台打印出1,同时这个表达式的结果是None。 - 接着把这个
None作为参数传给type()函数,type()会返回None的类型<class 'NoneType'>,并将这个结果输出。
你可以试着单独跑两行代码验证一下:
result = print("1") print(result)
运行后会先输出1,然后输出None,这和你原来的问题本质是一样的——只不过原来的代码是用type()去判断了print()返回的None的类型而已。
内容的提问来源于stack exchange,提问作者BigWhite
相关产品推荐
相关产品推荐

