该方法可以使实例化的对象变得可遍历
若有代码
class A:
pass
a = A()
for i in a:
print("1")
结果为
TypeError: 'A' object is not iterable
很正常,因为我们还没有实现该魔术方法
现在改为:
class A:
def __init__(self):
self.age = 14
def __getitem__(self, item):
self.age += 1
if self.age >= 23:
raise StopIteration()
return self.age
a = A()
for i in a:
print(i)
执行结果为:
15
16
17
18
19
20
21
22
现在a
对象变得可遍历了,且遍历值为__getitem__
方法的返回值