gpt4 book ai didi

python - 类中的方法可以是生成器吗?

转载 作者:太空狗 更新时间:2023-10-29 22:04:03 24 4
gpt4 key购买 nike

将类中的方法用作生成器是否可接受/Pythonic?我找到的所有示例都在函数中显示了 yield 语句,而不是在类中。

这是一个示例工作代码:

class SomeClass(object):
def first_ten(self):
for i in range(10):
yield i

def test(self):
for i in self.first_ten():
print i

SomeClass().test()

最佳答案

是的,这是完全正常的。例如,它通常用于实现 object.__iter__() method。使对象成为可迭代对象:

class SomeContainer(object):
def __iter__(self):
for elem in self._datastructure:
if elem.visible:
yield elem.value

但是,不要受限于该通用模式;任何需要迭代的东西都是生成器方法的候选对象。

关于python - 类中的方法可以是生成器吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37349439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com