TypeError: 'TestCase' object is not iterable


這個異常呢其實是因為我對list沒有足夠熟悉

我一開始很疑惑,明明已經正確返回testcase對象了呀,為啥會報TypeError: 'TestCase' object is not iterable這個錯誤 呢?

分析:

這個錯誤的意思是說TestCase這個對象是不可迭代的(注意到了嗎,是TestCase,而不是testcase)

看print(testcase)輸出的結果:

<TestCase.獲取房源狀態>

再看看是哪里調用了testcase對象,在runTest(testcase)函數中

使用for i in testcase 循環讀出testcase對象當中的內容

 

 

首先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中可以迭代的對象包括:字符串,列表,元組,字典,文件

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM