我的代码是用 Python 编写的,但这个问题适用于任何编程语言。
基本上,我有一个结构类似于这样的循环:
while True:
if visual:
print("Something meaningful")
function1()
function2()
视觉变量由用户在使用 CLI 参数调用脚本时确定,它是一个 bool 值。基本上,如果设置为 True,用户将获得视觉反馈,如果设置为 False,则不会。
问题是循环将在每次迭代时检查该变量,从而稍微减慢执行速度。
因此,我想知道是否有一种干净的方法可以避免在每次迭代时都必须检查“visual”是否为 True,以某种方式告诉程序仅在第一次迭代时检查该变量,因为该变量不能更改 mid -执行。
我想到了做这样的事情:
if visual:
while True:
print("Something meaningful")
function1()
function2()
else:
while True:
function1()
function2()
它有效,但它似乎根本不是一个好的做法。
解决这个问题最干净的方法是什么?
最佳答案
我会首先将 while
循环中的函数分组到一个新函数中。然后在循环之前我们检查 visual
是否为 True,如果是则我们用 wrapperdecorate functions()
>.
def functions():
function1()
function2()
def _visual_decorator(func):
def _wrapper(*args, **kwargs):
print("Something meaningful")
return func(*args, **kwargs)
return _wrapper
if visual:
functions = _visual_decorator(functions)
while True:
functions()
关于python - 是否有一种干净的方法可以仅在第一次迭代时或在执行之前检查循环内的变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64984506/