es用 Generator 给自定义对象写一个遍历器
时间: 2024-03-09 16:47:14 浏览: 39
扩展MyBatisPlus代码生成器实现自定义源码生成,可生成前端页面、vo对象、dto对象等代码
好的,这里为您提供一个简单的示例。
假设我们有一个自定义对象`MyObject`,我们想要通过遍历器来遍历它的属性,可以通过定义一个生成器函数来实现:
```python
class MyObject:
def __init__(self, a, b, c):
self.a = a
self.b = b
self.c = c
def __iter__(self):
yield from [self.a, self.b, self.c]
obj = MyObject(1, 2, 3)
for item in obj:
print(item)
```
在上面的代码中,我们定义了一个`MyObject`类,它有三个属性`a`、`b`和`c`。我们在`MyObject`类中实现了`__iter__`方法,它返回一个生成器对象,通过`yield from`关键字将`a`、`b`和`c`属性作为遍历器的元素。最后,我们创建了一个`MyObject`对象,并使用`for`循环来遍历它的属性,输出了结果。
需要注意的是,我们可以使用`yield`或`yield from`关键字来定义生成器函数,它们的作用是将函数转换为一个可迭代的生成器对象,其中`yield`返回一个值并暂停函数的执行,等待下一次迭代,`yield from`则将可迭代对象的元素逐个返回。
阅读全文