me di cuenta de un problema cuando yo estaba tratando de usar del lambda en una fina a una lista de temas a los que dirigen simplemente:Python del() built-in no se puede utilizar en la asignación?
map(lambda x: del(x) if not x.isAlive() else x, self.threads)
Ignorar por un segundo que esto no hace nada, estoy solo jugando con map, reduce y lambda.
Esto falla con un error de sintaxis en del (x). Con algunos problemas, creo que el problema es que del() no devuelve un valor. Por ejemplo, esta falla con el mismo error:
b = 5
x = del(b)
Esto no significa, sin embargo:
def rmThis(x): del(x)
Lo que significa que estoy usando esta solución:
map(lambda x: rmThis(x) if not x.isAlive() else x, self.threads)
Así es el limitación simplemente porque del() no devuelve un valor? Por qué no?
estoy usando Python 2.6.2
¿Es necesario llamar 'del' en los objetos de subprocesos explícitamente? Si puede dejarlo en el contador de referencia o en el recolector de basura, puede escribir tihs en su lugar: '[hilo para hilo en self.threads if hilo.isAlive()]'. –
Incluso si esto funcionó, no funcionaría :) No puede eliminar elementos de un iterable mientras está iterando sobre él. –