# 迭代器
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()

更多相关文章

  1. 小白学Python---面向对象02
  2. AttributeError:“MatrixFactorizationModel”对象没有属性“sav
  3. Python:在类中定义对象
  4. 自动完成在VS代码和Python中的自动化对象
  5. 具有相同时区但不同的utcoffset()的Datetime对象
  6. Python 【面向对象(类)】 学习笔记
  7. 如何将json转换为对象?
  8. Python 全栈开发七 面向对象
  9. Python可执行对象——exec、eval、compile

随机推荐

  1. sqlite数据库常用命令
  2. 第1章 Android应用与开发环境
  3. 分布式系统架构常见知识点梳理
  4. the-super-tiny-compiler源码解析
  5. android布局属性使用说明和一些开发经验
  6. Android知识巩固—四大组件能否开多进程
  7. java技术栈常规面试题汇总(自己在2021届校
  8. Backend For Frontend (BFF)
  9. Unity与Android之间的交互之AndroidManif
  10. 面试必问:布隆过滤器的原理以及使用场景