在python中如果在for中引用一个函数被告知寻展开一个元素,比如一个数字,这种情况会引发TypeError的异常。
例如:
#!/usr/bin/env python
def test(lst):
print 'test'
for sublist in lst:
print sublist
test(1)
#############################
运行结果:
test
Traceback (most recent call last):
File "test_yield.py", line 12, in <module>
test(1)
File "test_yield.py", line 5, in test
for sublist in lst:
TypeError: 'int' object is not iterable
再看:
#/usr/bin/env python
def test(lst):
print 'test'
for sublist in lst:
print sublist
test([1])
################################
运行结果:
test
1
看明白了吗?如果值数字就会产生异常,如果是列表就可以。因为数字是“int”型不可迭代的而列表是“口以”的。