2015-11-15 3 views
5

ich in Python neu bin, gelöst eine alte Python-Datei in Python zu bauen versucht, 3. ich mehrere Buildfehler bekam, die ich. Aber an diesem Punkt, den ich oben Störung erhalten. Ich habe keine Ahnung, wie dieses Problem zu beheben. Der Codeabschnitt sieht aus wie unten.Python 3, Modul ‚itertools‘ hat kein Attribut ‚ifilter‘

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

Antwort

9

itertools.ifilter() wurde in Python 3 entfernt, da die eingebauten in filter() function jetzt die gleiche Funktionalität zur Verfügung stellt.

Wenn Sie Code zu schreiben, der in beiden Python 2 und Python 3, Verwendung Einfuhren aus den future_builtins module (nur in Python 2, so verwenden Sie einen try...except ImportError: guard) ausführen kann:

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

return filter(lambda i: i.state == "IS", self.storage) 
Verwandte Themen