遍历操作__getitem__
生活随笔
收集整理的這篇文章主要介紹了
遍历操作__getitem__
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
遍歷操作-getitem
class Person:pass p = Person() for i in p:print(i) 以上代碼報錯如下:Traceback (most recent call last): File
“G:/Study/Git/FSR/FSRNet/zhongjiema-FSRNet-pytorch-master/FSRNet-pytorch/mzjtest/pytorch學習/getitem.py”,
line 4, in
for i in p: TypeError: ‘Person’ object is not iterable
原因就是自己定義的這個Person類中的對象不能被迭代,那么如何使其能夠被迭代呢?
很簡單,就是在類中定義方法”getitem“即可。當我們通過for…
in去遍歷一個實例的時候,它會檢測這個實例有沒有實現__getitem__這個方法,如果有,那么就會取出這個方法所返回的數據。
結果如下:
None None None None None … None None None None None None None None
結果如下: 1 1 1 1 1 … 1 1 1 1 1 1
為什么會一直返回1呢,因為在__getitem__中沒有結束條件,所以說一般在定義__getitem__方法的時候要給出結束條件。下面給出實現方法:
結果如下:
2 3 4 5
總結
以上是生活随笔為你收集整理的遍历操作__getitem__的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql jena rdf_RDF和J
- 下一篇: 使用libjpeg进行图片压缩