编写一个计数器类型,创建的对象可以通过for循环遍历
提示1:for循环可以遍历的对象是可迭代对象,内部可以通过__iter__()魔法方法获取遍历数据的迭代器
提示2:yield关键字
class Counter:
"""计数器类型"""
def __init__(self, max_count):
self.max_count = max_count
def __iter__(self):
count = 0
while count <= self.max_count:
yield count
count += 1
cnt = Counter(100)
for x in cnt:
print(x) # 打印0~100的数据
yield:
是一个关键字,通常用于生成器函数中。生成器函数是一种特殊的函数,其执行过程中可以暂停并保存当前状态,然后在需要时恢复执行。
yield
的作用:是将函数的执行结果产生为一个值,并暂停函数的执行,等待下一次调用时继续执行。这使得生成器函数可以按需生成序列,而不需要一次性生成所有值,从而节省内存空间。