gpt4 book ai didi

Python - 如何访问 range() 返回的范围类型对象的当前状态?

转载 作者:行者123 更新时间:2023-12-01 09:02:44 24 4
gpt4 key购买 nike

在 Python 3 中,如果我没记错的话,由 range() 创建的范围类型对象会按需为 for 循环生成数字,其方式有点类似于生成器。

我想知道是否可以访问范围对象提供给 for 循环的当前值(我在其他地方运行一个线程来跟踪 for 循环中的进度)。例如,在:

range_obj = range(0, 10000)
for i in range_obj:
print(i)

假设我正在进行第 100 次迭代,其中将打印“99”,并且我只能访问变量 range_obj。是否有一些方法或变量我可以使用 range_obj 调用(例如以 range_obj.X 的方式)来获取数字“99”?如果不是方法或变量,我是否有可能从循环外部访问这个数字“99”?

最佳答案

我会尝试这样的事情:

class MyRange:

def __init__(self, *params):
self.range_iterator = iter(range(*params))
self.sentinel = None

def __iter__(self):
return self

def __next__(self):
self.sentinel = next(self.range_iterator)
return self.sentinel

r = MyRange(0, 1000)

for i in r:
print(r.sentinel)

关于Python - 如何访问 range() 返回的范围类型对象的当前状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52342741/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com