把函数 __iter__(self) 注释掉也能正常运行?那视频中写这个函数起到了什么作用?不懂
class PowNum(object): sum = 0 # def __iter__(self): # # return self def __next__(self): self.sum += 1 return self.sum * self.sum if __name__ == "__main__": po = PowNum() print(po.__next__()) print(po.__next__()) print(po.__next__()) print(po.__next__())
8
收起
正在回答 回答被采纳积分+1
1回答
慕猿梦
2019-03-31 13:36:00
同学,你好,虽然缺少了__iter__(self)也能正常运行,但是缺少了__iter__(self)方法之后这个实例对象po就不是个迭代器了,可以用下列代码判断是否是迭代器:
使用isinstance(po,Iterator)方法,可以判断该po是否是迭代器,如果返回True,则是迭代器,否则则不是,包含__iter__方法和__next__方法是迭代器
from collections import Iterator class PowNum(object): sum = 0 # def __iter__(self): # # return self def __next__(self): self.sum += 1 return self.sum * self.sum if __name__ == "__main__": po = PowNum() print(isinstance(po,Iterator)) print(po.__next__()) print(po.__next__()) print(po.__next__()) print(po.__next__())
如果我的回答解决了你的疑惑,欢迎采纳!!祝学习愉快~~
相似问题
登录后可查看更多问答,登录/注册
1.Python零基础入门
- 参与学习 人
- 提交作业 2727 份
- 解答问题 8160 个
想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星