【发布时间】:2011-04-22 16:34:11
【问题描述】:
错误TypeError: 'NoneType' object is not iterable 是什么意思?
我在这个 Python 代码上得到了它:
def write_file(data, filename): # creates file and writes list to it
with open(filename, 'wb') as outfile:
writer = csv.writer(outfile)
for row in data: # ABOVE ERROR IS THROWN HERE
writer.writerow(row)
【问题讨论】:
-
这是我对 Python 的恼人失望之一。当
None被强制转换为序列时,它必须产生一个空序列,完全无害。 -
@nehemiah:Python 是强类型的(只是不是静态类型的)。
None永远不会被强制anything。让None像其他类型一样默默地隐藏错误;那是“无害”的相反。如果你需要一个虚假的占位符来表示空序列,你可以使用()或''/"",它们都是单例,并且可以像None一样便宜地加载。如果您想选择以静默方式将任何虚假的内容视为空序列,您可以执行for row in data or ():,但没有人这样做,因为将None传递给期望序列的函数是一个不应静默传递的错误. -
在 python 2 中安装不再支持 python 2 的模块时,您也可能会收到此错误,例如stackoverflow.com/q/63346648/838494
-
@nehem 你一定是 Javascript 的粉丝。
-
@MattYoon JS 做对了很多事情。