python - 修改条件python参数中的变量
问题描述
我有一个 while 循环,它对另一个类提供的输出进行操作,直到没有输出。
while a.is_next():
fn(a.get_next())
有没有办法检查一个新项目是否存在?同时“加载”它?
while b=a.get_next():
fn(b)
解决方案
看起来您正在尝试重新发明iterator。迭代器必须有两个方法:一个__iter__
返回迭代器本身的__next__
方法和一个返回下一项或 raises的方法StopIteration
。例如
class MyIterator:
def __init__(self):
self.list = [1, 2, 3]
self.index = 0
def __iter__(self):
return self
def __next__(self):
try:
ret = self.list[self.index]
self.index += 1
return ret
except IndexError:
raise StopIteration
这个例子很多,但它允许我们在 Python 需要迭代器的任何地方使用该迭代器
for x in MyIterator():
print(x)
1
2
3
推荐阅读
- reactjs - React 服务单例替代方案
- python - 如何使用 for 循环从两个不同的列表中打印两个变量?
- angular - 如何有条件地生成角度 6 动态反应形式
- c# - 在 UWP 的辅助监视器上打开新窗口
- javascript - 使用 node.js 从文件中返回搜索文本的行
- c# - C# 应用程序设置存储元组列表
- javascript - 如何让 Tampermonkey 脚本在 hashchange 事件后等待页面完成?
- c# - 在 MVC 中检查电子邮件的远程验证
- javascript - 检测在其他地方点击然后从自定义调色板点击按钮
- html - 在本地 HTML 文件中包含指向 HTML/CSS 验证器的链接