1. 程式人生 > >Python getitem方法理解

Python getitem方法理解

Python: getitem方法理解

Python方法__getitem__可以實現物件的迭代功能,然後可以使用for ... in ... 來迭代物件了

class Animal:
    def __init__(self,animal_list):
        self.animal_name = animal_list

animals=Animal(['dog','cat','fish'])
for animal in animals:
    print(animal)

輸出錯誤:

TypeError: 'Animal' object is not
iterable

在用 for..in.. 迭代物件時,如果物件沒有實現 __iter__ __next__ 迭代器協議,Python的直譯器就會去尋找__getitem__ 來迭代物件,如果連__getitem__ 都沒有定義,這直譯器就會報物件不是迭代器的錯誤,如上述錯誤.

修改如下:

class Animal:
    def __init__(self,animal_list):
        self.animal_name = animal_list
        
    def __getitem__(self,index):
        print(index)
return self.animal_name[index] animals=Animal(['dog','cat','fish']) for animal in animals: print(animal)
0
dog
1
cat
2
fish
3

參考:https://blog.csdn.net/qq_24805141/article/details/81411775