我可以使用eval重新创建代码,它会提高性能吗?

时间:2019-02-18 23:59:06

标签: python eval

我在使用true时有一个无限循环 在这个循环结束时,我总是检查这是否是循环的第一次迭代 如果是第一次迭代,则继续;如果是第二次,则在sleep(1200)

我想知道避免检查每次迭代if条件的最佳方法是什么?这个条件只有一次,并且我将循环运行10 ^ 10000次。

像这样使用eval是否有性能优势:

crazy = r""" crazy = "sleep(120)" """

while True:
    // do some code
    eval(crazy)

这将在第一次循环时重写crazy var,稍后将仅执行睡眠。 我知道这是不安全的,但是有一天,智能代码将是一种自我编写的代码。

1 个答案:

答案 0 :(得分:1)

我怀疑eval会比if更有效率。

如果要避免使用“ if”,则以下代码将起作用。

n=0
while True:
    // do some code
    sleep(n)
    n=1200

或完全删除该行

doSomeCode()
while True:
    doSomeCode()
    sleep(1200)

但是,老实说,除非您知道存在特定的性能问题,否则您不会每隔20分钟循环一次,这很可能掩盖了您的过早优化。