我试图实现在这个网站上第一次听说的一个技巧。
[i for i in range(0, 10) if True or print(i)]
这个想法是你可以在列表推导式的每一步调用任意函数,只需将其放在一个始终返回True的“if”语句中。但是这段代码会报语法错误。
如果我这样封装要调用的函数:
def f(i):
print i
[i for i in range(0, 10) if True or f(i)]
it产生了期望的输出。所以我想知道在Python看来,这两者之间有什么区别,因为我无法确定可能是什么——这两个函数都返回“None”,对吗?
from __future__ import print_function
;但是为什么你需要有任何副作用呢? - Martijn Pieters