为什么不将重复类和无限类添加到 Python 中以获得更好的 for 循环? [关闭]

问题描述 投票:0回答:0

我正在考虑我正在编写的脚本的最佳性能,虽然它并没有提高多少效率,但是与

repeat
类一起使用
range
类不是更好吗?尽管
range
非常有用,但有时您只想将某些代码行重复一定次数。在这些情况下,使用像我在下面定义的类这样的类不是更有效吗?

class repeat:
    def __init__(self, repeats):
            self.repeats = repeats
    def __iter__(self):
            i = 0
            while i < self.repeats:
                    yield
                    i += 1
for _ in repeat(3):
    print('Repeated')
Repeated
Repeated
Repeated

在我做到这一点之后,我也认为有些时候我想做的就是永远重复代码/直到发生某些事情。尽管我可以使用

while True:
循环,但我认为 for 循环看起来更漂亮。

class infinity:
    def __iter__(self):
            while True:
                    yield
for _ in infinity():
    print('Infinite')
Infinite
Infinite
Infinite
...

我不太确定这是否有任何好处,但我仍然认为它看起来更好,而且在您需要做的就是重复代码一定次数的情况下它更有意义。

python python-3.x generator cpython
© www.soinside.com 2019 - 2024. All rights reserved.