在Python中,“重复N次”是否比“ for _”更好的习惯用法?

时间:2019-06-27 21:04:18

标签: python python-3.x

我的问题很简单;有没有更好的方法来重复一段代码

for _ in range(N):
    stuff = 10
    thing = True
    a_task(stuff, thing)
    ...

还是要创建由N个相同类别的对象组成的列表,例如a_list = [AnObject() for _ in range(N)]但没有丑陋的for _ in range(N)


类似

with repeat(50):
    ...

对于块情况会很好,但是我想用上下文管理器无法实现它。

还请注意,a_list = [AnObject()] * N不是第二种情况的答案,因为它会复制引用。


在这两种情况下,对于丑陋的for _来说,还有不错的选择吗?

1 个答案:

答案 0 :(得分:0)

您可以创建一个带参数的装饰器,该参数指示循环数:

@loop(40)
def my_function:
    pass

也就是说,列表理解语法是惯用的。另外,我不知道您为什么为此使用'_',这使它更难看,恕我直言