【发布时间】:2022-06-30 18:31:19
【问题描述】:
我有以下功能:
def f(loop_condition, count):
while loop_condition:
count += 1
...
这适用于简单的 True 语句。但是如果我想让我的循环条件是:
count < 3
有没有办法做到这一点?
【问题讨论】:
我有以下功能:
def f(loop_condition, count):
while loop_condition:
count += 1
...
这适用于简单的 True 语句。但是如果我想让我的循环条件是:
count < 3
有没有办法做到这一点?
【问题讨论】:
另一种方法是使用 lambda:
my_loop_condition = lambda count: count > 3
然后像这样使用它:
while loop_condition(count)
【讨论】:
如果我理解您的问题,这就是解决方案:
def f(count):
loopCount=0
while loopCount<count:
loupCount += 1
...
【讨论】:
您可以将 loop_condition 作为字符串传递,然后 eval():
def f(loop_condition, count):
while eval(loop_condition):
count += 1
print(f('count < 3'))
输出:
3
【讨论】:
您可以将条件作为字符串传递,然后在函数中对其进行评估。例如:
def func(condition, count):
while eval(condition):
count += 1
return count
print(func('count < 3', 0))
输出:
3
【讨论】: