python---写一个迭代器
16lz
2021-01-22
# 迭代器
class House(object):
# 属性初始化
def __init__(self, room):
self.room = room # 当前调用对象
self.people = [] # 对象下所有的数据,用列表保存
self.current_index = 0 # 当前遍历到的列表下标
# 添加方法
def add_person(self, person):
self.people.append(person)
# iter方法,并返回一个迭代器
def __iter__(self):
return self
# next方法,返回当前记录的所在下标及相应数据
def __next__(self):
if self.current_index < len(self.people):
current_data = self.people[self.current_index]
self.current_index += 1
return current_data
else:
self.current_index = 0
raise StopIteration
def main():
"""一个可迭代对象同时又是迭代器"""
# 创建一个类对象
bedroom = House('bedroom')
# 适用对象可以添加数据
bedroom.add_person('xiaoli')
bedroom.add_person('maomao')
# 使用for遍历该对象
for person in bedroom:
print(person)
if __name__ == '__main__':
main()
更多相关文章
- 小白学Python---面向对象02
- AttributeError:“MatrixFactorizationModel”对象没有属性“sav
- Python:在类中定义对象
- 自动完成在VS代码和Python中的自动化对象
- 具有相同时区但不同的utcoffset()的Datetime对象
- Python 【面向对象(类)】 学习笔记
- 如何将json转换为对象?
- Python 全栈开发七 面向对象
- Python可执行对象——exec、eval、compile