2015-11-15 17 views
5

Sono nuovo su Python, sto provando a creare un vecchio file python in Python 3. Ho avuto diversi errori di compilazione che ho risolto. Ma a questo punto sto superando l'errore. Non ho idea di come risolvere questo problema. La sezione del codice appare come di seguito.Python 3, modulo 'itertools' non ha attributo 'ifilter'

return itertools.ifilter(lambda i: i.state == "IS", self.storage) 

risposta

9

itertools.ifilter() stato rimosso in Python 3 perché incorporato filter() function fornisce la stessa funzionalità ora.

Se è necessario scrivere codice che può essere eseguito sia in Python 2 e Python 3, utilizzare le importazioni dalla future_builtins module (solo in Python 2, in modo da utilizzare una guardia try...except ImportError:):

try: 
    # Python 2 
    from future_builtins import filter 
except ImportError: 
    # Python 3 
    pass 

return filter(lambda i: i.state == "IS", self.storage) 
Problemi correlati