[00402]代理迭代
来源:互联网 发布:淘宝咸鱼pc搜索工具 编辑:程序博客网 时间:2024/04/29 15:12
代理迭代
一、 解决问题
你构建了一个自定义容器对象,里面包含有列表、元组或其他可迭代对象。 你想直接在你的这个新容器对象上执行迭代操作。
二、解决方案
> __iter__() 重写这个方法
三、代码说明
#!/usr/bin/env pythonclass Node: def __init__(self, value): self._value = value self._children = [] def __repr__(self): return "Node({!r})".format(self._value) def add_child(self, node): self._children.append(node) def __iter__(self): return iter(self._children)if __name__ == "__main__": root = Node(0) c1 = Node(1) c2 = Node(2) root.add_child(c1) root.add_child(c2) for ch in root: print (ch)
四、关联知识
五、总结
1. Python 的迭代器协议需要__iter__() 方法返回一个实现了__next__() 方法的迭代器对象。2. iter() 函数的使用简化了代码,iter(s) 只是简单的通过调用s.__iter__() 方法来返回对应的迭代器对象
六、代码地址
github地址:https://github.com/weichen666/python_cookbook
目录/文件:fourth_selection/learn_iter_iter.py
七、参考
0 0
- [00402]代理迭代
- 4.2 代理迭代:
- 关于sql server 代理(已禁用代 ...
- 代理模式——游戏代练
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 迭代
- 使用工具或者IDE迅速构建一个Spring Boot应用
- Jquery 获取 radio选中值
- curl: (7) Failed to connect to raw.githubusercontent.com port 443: Operation timed out
- ajaxFileUpload 源码及相关bug解决
- 第7章 Application类(1)——程序集资源
- [00402]代理迭代
- AndroidStudio Gradle一直卡在Refreshing XXX Project
- 详解谷歌VR平台Daydream:有手柄就是不一样
- 重构:改善既有代码的设计
- 十六进制转八进制
- 英皇集团主席杨受成亲自挑选英皇集团中心的空调
- $.ajax 获取array数组 动态拼接控件
- IEC104规约的超时和报文丢失重发的处理机制
- 重构与模式