在“学习Python第5版”的第608页上,有一个示例代码:
>>> list(print(x.upper(), end=' ') for x in 'spam')
S P A M [None, None, None, None]
那么,为什么[无,无,无,无]弹出最后一个?
答案 0 :(得分:4)
print
函数返回None
...因此,您的表达式构造了一个列表[None, None, None, None]
。由于您在python Read Evaluate Print Loop(REPL)中,表达式的结果在评估后会被打印出来......
因此,表达式的评估具有打印S P A M
的副作用,然后在评估表达式之后,它的值被打印([None, None, None, None]
)。