我是Python的新手,正在尝试将一个旧的Python文件构建为Python 3。我遇到了几个编译错误,但我已经解决了它们。但是在这一点上,我遇到了以上的错误。我不知道该如何解决这个问题。代码部分看起来像下面这样。
return itertools.ifilter(lambda i: i.state == "IS", self.storage)
我是Python的新手,正在尝试将一个旧的Python文件构建为Python 3。我遇到了几个编译错误,但我已经解决了它们。但是在这一点上,我遇到了以上的错误。我不知道该如何解决这个问题。代码部分看起来像下面这样。
return itertools.ifilter(lambda i: i.state == "IS", self.storage)
itertools.ifilter()
在Python 3中已被移除,因为内置的filter()
函数现在提供了相同的功能。
如果您需要编写可以在Python 2和Python 3中运行的代码,请使用future_builtins
模块中的导入(仅在Python 2中,因此请使用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)