摘要:
问题: 你想构建一个能支持迭代操作的额自定义对象,并希望找到一个能实现迭代协议的简单方法。 解决方案: 目前为止,在对象上实现迭代最简单的方式是使用一个生成器函数。可以实现一个深度优先遍历树形节点的生成器。下面是实现代码 class Node: def __init__(self, valu 阅读全文
posted @ 2022-03-17 14:15
qiupeng
阅读(33)
评论(0)
推荐(0)
摘要:
问题: 你想实现一个自定义迭代模式,跟普通的内置函数比如range(),reverse的()不一样。 解决方案: 如果你想实现一种新的迭代模式,使用一个生成函数来定义它。下面是 一个生产某个范围内浮点数的生成器。 def frange(start, stop, increment): x 阅读全文
posted @ 2022-03-17 11:36
qiupeng
阅读(35)
评论(0)
推荐(0)
摘要:
问题: 你构建了一个自定义容器对象,里面包含有列表、元组或其他可迭代对象。你想直接在你的这个新容器对象上执行迭代操作。 解决方案: 实际上你只需要定义一个__iter__()方法,将迭代操作代理到容器内部的对象上去,比如: class Node: def __init__(self,valu 阅读全文
posted @ 2022-03-17 11:17
qiupeng
阅读(27)
评论(0)
推荐(0)
摘要:
问题: 你想遍历一个可迭代对象中的所有元素,但是却不想使用for循环 解决方案: 为了手动的遍历可迭代对象,使用next()函数并在代码中捕获StopIterable异常。比如,下面的例子手动读取一个文件中的所有行: def manual_iter(): with open(r'D:\stu 阅读全文
posted @ 2022-03-17 11:16
qiupeng
阅读(60)
评论(0)
推荐(0)