我有一个用于访问API的令牌列表。我希望始终能够选择列表中的下一个令牌以供使用,当到达列表末尾时,重新开始
我现在有了这个,可以用了,但是我发现它很乱,不可读
class tokenz:
def __init__(self):
self.tokens = ['a', 'b', 'c', 'd', 'e']
self.num_tokens = len(tokens)
self.last_token_used = 0
def select_token(self):
if self.last_token_used == 0:
self.last_token_used += 1
return self.tokens[0]
elif self.last_token_used < (self.num_tokens - 1):
self.last_token_used += 1
return self.tokens[self.last_token_used - 1]
elif self.last_token_used == (self.num_tokens -1):
self.last_token_used = 0
return self.tokens[self.num_tokens - 1]
有没有想过让这个更像Python
使用itertools.cycle()获得一个生成器,该生成器无限重复项目列表
如果你真的想让你发布的代码更简单,可以使用模运算
另外,可以在Python列表中使用负索引,因此
if
语句是不必要的:然后你的代码变成:
相关问题 更多 >
编程相关推荐