python - Python iter 函数在没有正常函数的标记值的情况下无法工作
问题描述
这里我定义了一个普通函数:
def abc():
return 1
现在,当我在 abc 方法上使用 iter 函数进行迭代时,出现以下错误。
for i in iter(abc):
print i
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'function' object is not iterable
但是现在当我使用哨兵时,它的工作原理。
for i in iter(abc, ''):
print i
1
1
1
1
1
1
...
知道为什么会发生上述行为吗?
解决方案
iter(spam)
期望spam
是可迭代的,而函数对象不是。
iter(spam, sentinel)
期望spam
是一个可调用的,它是。所以iter
会一直调用spam
,直到它返回哨兵值。
推荐阅读
- java - 将 .pst 文件提取到 msg 但未获取 msg 文件的确切数量
- sql - 查询以列出与特定表关联的作业名称和步骤
- ruby-on-rails - Rails. Association of the same model with many parents
- scala - How to write integration tests depending on Druid?
- python - Function to translate input in one form to another
- swift - 定义布局以保存为图像 - Swift
- r - dplyr 在数据子集上
- node.js - how to connect to a server running on computer using computer's IP address?
- mysql - MySQL:SUM 函数应用于另一个查询选择的字段中包含的公式
- python - 从 pandas groupby 获取数据帧以写入镶木地板