{{cd1>有时,其他变量的值是由一个负的变量来计算的。我的代码是:
def delta_value(direction):
diff=value2-value1
if diff > 0: ascend="+"; descend="-"
elif diff < 0: ascend="-"; descend="+"
if direction == "increase": return ascend
elif direction == "decrease": return descend
def calc_max_order():
global max_order
if num < max_num:
while num < max_num:
exec("max_order%s=1" % delta_value("decrease"))
elif num > max_num:
while num > max_num:
exec("max_order%s=1" % delta_value("increase"))
此代码似乎不起作用(也就是说,它不会更改max_order的值),但没有返回错误。它停留在while循环中。当calc_max_order
不是函数,而是在主块中时,代码确实可以工作。但是,我想让它成为一个清理代码的函数。在
我知道大多数人都说使用exec是不明智的,但我才刚刚开始学习python,我不知道还有什么办法。我想我可以使用一堆if语句,但我想有一种更干净的方法来实现它。在
所以,说清楚,我的问题是:
有没有一种方法可以使exec("max_order%s=1" % delta_order_value("decrease"))
在函数内工作,或者有没有其他方法根据delta_value
的输出动态地增加/减少{
将
delta_value()
更改为:…同时。。。
代替
^{pr2}$exec
,您现在可以:Diff为正或负,而不是“+”或“-”
使用
exec()
是一个巨大的危险信号。您可以使用一个固定的+=
和一个可变的delta来实现这一点。在如果你需要颠倒
^{pr2}$delta
的意思,就否定它:相关问题 更多 >
编程相关推荐