我想使用一些生成器表达式作为一些昂贵的数据计算的属性。如果可能的话,我希望能够做这样的事情:
class Test:
def __init__(self):
self.data = []
self.evens = (i for i in self.data if i % 2 == 0)
def __main__():
t = Test()
t.data = [1,2,3,4,5,6,7,8]
for item in t.evens:
print(item)
if __name__ == '__main__':
__main__()
我希望看到这个打印出来2 4 6 8
,但这没有输出。我在这里犯了一些简单的错误吗?
我在这里尝试做的事情是可能的还是我需要用来yield
做这件事?