当我尝试在 lambda 中使用 del 将线程列表精简为仅运行的线程时,我注意到了一个问题:
map(lambda x: del(x) if not x.isAlive() else x, self.threads)
暂时忽略这没有任何作用,我只是在玩弄 map、reduce 和 lambda。
这将失败并在 del(x) 处出现语法错误。由于有些混乱,我认为问题在于 del() 没有返回值。例如,这失败并出现相同的错误:
b = 5
x = del(b)
然而,这不是:
def rmThis(x): del(x)
这意味着我正在使用这种解决方法:
map(lambda x: rmThis(x) if not x.isAlive() else x, self.threads)
那么限制仅仅是因为 del() 不返回值吗?为什么不?
我正在使用 python 2.6.2