Python getitem方法理解
阿新 • • 發佈:2018-12-09
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