首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NoneType错误

NoneType错误
EN

Stack Overflow用户
提问于 2013-09-10 21:49:15
回答 2查看 1K关注 0票数 2

我得到了

代码语言:javascript
复制
TypeError: 'NoneType' object is not iterable 

在这条线上:

代码语言:javascript
复制
temp, function = findNext(function) 

也不知道为什么会失败。我在while循环中使用函数:

代码语言:javascript
复制
while 0 < len(function):
    …

但我不想重复。在findNext(function)中的所有回报几乎都是

代码语言:javascript
复制
return 'somestring',function[1:]

不明白为什么它认为我在迭代其中的一个对象。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-10 22:51:20

我猜想findNext在不返回任何内容的情况下就会从末尾掉下来,这使得它自动返回None。就像这样:

代码语言:javascript
复制
>>> def findNext(function):
...     if function == 'y':
...         return 'somestring',function[1:]
...
>>> function = 'x'
>>> print(findNext(function))
None
>>> temp, function = findNext(function)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not iterable

解决办法是总是归还一些东西。

票数 1
EN

Stack Overflow用户

发布于 2013-09-10 21:54:25

声明:

代码语言:javascript
复制
return 'somestring',function[1:]

实际上是返回长度为2的元组,而元组是可迭代的。把这句话写成:

代码语言:javascript
复制
return ('somestring', function[1:])

这使得它的元组性质更加明显。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18729329

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档