use*_*355 2 python expression generator
我已经尝试过以下代码:
result = (x for x in range(3))
for y in result:
print(y)
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
0
1
2
Run Code Online (Sandbox Code Playgroud)
但是当我使用此代码时:
result = (print(x) for x in range(3))
for y in result:
print(y)
Run Code Online (Sandbox Code Playgroud)
我得到以下输出:
0
None
1
None
2
None
Can anyone explain, Why this **None** is coming in output in second code?
Run Code Online (Sandbox Code Playgroud)
print不返回值,因此您看到的是None,这是 的返回值print,以及 的输出print。这是使用理解语法产生副作用的经典案例,它没有使用生成器/理解语法来包含实际结果。您可以通过运行以下命令来检查:
print(print('x'))
x
None
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |