Python del() built-in can't be used in assignment?
- by emcee
I noticed a problem when I was trying to use del in a lambda to thin out a list of threads to just those running:
map(lambda x: del(x) if not x.isAlive() else x, self.threads)
Ignore for a second that this doesn't do anything, I'm just fooling around with map, reduce, and lambda.
This fails with a syntax error at del(x). With some messing around, I think the problem is del() doesn't return a value. For example, this fails with the same error:
b = 5
x = del(b)
This doesn't, however:
def rmThis(x): del(x)
Which means I'm using this workaround:
map(lambda x: rmThis(x) if not x.isAlive() else x, self.threads)
So is the limitation just because del() doesn't return a value? Why not?
I'm using python 2.6.2