ラムダで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()が値を返さないという理由だけで制限はありますか?なぜだめですか?
私はPython2.6.2を使用しています