TypeError: 'TestCase' object is not iterable

这个异常呢其实是因为我对list没有足够熟悉

我一开始很疑惑,明明已经正确返回testcase对象了呀,为啥会报TypeError: 'TestCase' object is not iterable这个错误 呢?

TypeError: 'TestCase' object is not iterable

分析:

这个错误的意思是说TestCase这个对象是不可迭代的(注意到了吗,是TestCase,而不是testcase)

看print(testcase)输出的结果:

<TestCase.获取房源状态>

再看看是哪里调用了testcase对象,在runTest(testcase)函数中

使用for i in testcase 循环读出testcase对象当中的内容

TypeError: 'TestCase' object is not iterable

首先testcase = runProject("all")会返回一个列表

我原本想是通过这句代码只取前2条数据,我以为这句代码执行后testcase = runProject("all")[2],testcase对象仍然是一个列表,但实际上这样写是只取了testcase列表中下标为2的元素,而不是testcase这个列表前2个元素了

正确的写法应该是这样的

testcase = runProject("all")[:2]

 举个小例子说明一下:

for循环迭代一个列表--正常执行

                                                       

In [2]: a=["a","b",123]                                                       


In [4]: for i in a: 
   ...:     print(i) 
   ...:                                                                         
a
b
123

 for循环迭代a[:2](a[:2]仍然是一个列表对象)--正常执行

In [8]: a[:2]                                                                   
Out[8]: ['a', 'b']


In [6]: for i in a[:2]: ...: print(i) ...: a b

  for循环迭代a[2](a[2]表示列表中下标为2的元素,该元素是数字123,该对象是不可迭代的)--报错了TypeError: 'int' object is not iterable

In [9]: a[2]                                                                    
Out[9]: 123


In [7]: for i in a[2]: ...: print(i) ...: --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-7-879d94b1fc77> in <module> ----> 1 for i in a[2]: 2 print(i) 3 TypeError: 'int' object is not iterable

 顺例复习一下:

python中可以迭代的对象包括:字符串,列表,元组,字典,文件