📅  最后修改于: 2023-12-03 15:37:09.477000             🧑  作者: Mango
在编程中,可迭代是指一种数据类型,它可以被按照一定的顺序遍历,每次遍历返回一个元素。
Python中有些内置的数据类型就是可迭代的。比如:
这些数据类型都可以通过for循环进行遍历。
my_list = [1, 2, 3, 4, 5]
for i in my_list:
print(i)
# output:
# 1
# 2
# 3
# 4
# 5
除了内置的数据类型外,我们也可以创建自定义的可迭代类型。为了让一个对象成为可迭代的,我们需要实现__iter__
方法。
__iter__
方法需要返回一个迭代器对象,迭代器对象是拥有__next__
方法的对象。在每次进行迭代时,调用__next__
方法返回下一个元素。
下面是一个自定义可迭代类型的例子:
class MyRange:
def __init__(self, start, end):
self.start = start
self.end = end
def __iter__(self):
self.current = self.start
return self
def __next__(self):
if self.current >= self.end:
raise StopIteration
else:
self.current += 1
return self.current - 1
my_range = MyRange(1, 4)
for i in my_range:
print(i)
# output:
# 1
# 2
# 3
在这个例子中,我们定义了一个MyRange
类,用于生成从start
到end
的整数序列。
我们实现了__iter__
方法,它返回了一个迭代器对象self
。我们也定义了__next__
方法,用于在每次迭代时返回下一个元素。如果已经到达序列末尾,我们会抛出StopIteration
异常。