print为什么这段代码中的outer会显示None?
print
None
>>> a = print(print("Python")) Python None >>> print(type(a)) <class 'NoneType'>
为什么这里是abecome None,尽管hey是打印出来的(而不是None)?
a
hey
>>> a = print("hey") hey >>> type(a) <class 'NoneType'>
在Python中,print函数总是返回None。它的作用是将内容打印到控制台,而不是返回值。让我们逐步解析你的两个例子,以理解为什么会显示None。
a = print(print("Python"))
分步骤解析:
print("Python")
Python
返回值:None
外部的 print: 外部的print接收到的是内部print的返回值,即None,并将其打印出来。
因此,外部的print显示None是因为它打印的是内部print的返回值。
变量a被赋值为外部print的返回值,这也是None,因为print函数本身返回None。
a = print("hey")
print("hey")
因此,变量a被赋值为print("hey")的返回值,即None。
NoneType
在这两个示例中,print函数都返回None,因此变量a的类型是NoneType:
>>> type(a) <class 'NoneType'>
总结:
print(print("Python"))
这说明print函数用于打印内容,而不返回其他值,因此每次调用print函数的返回值都是None。