0

我编写了一个灵活的模拟程序。Flexibe,因为用户应该能够通过 python 代码自定义计算。对于定制,他首先定义了一些“常数”(常数,即它们永远不会改变值)。然后他可以使用常量和一些已知的预定义变量来定义python计算代码。此代码稍后在固定程序代码中处理。这里有一个简化的例子:

# begin user input
WIDTH = 20.0  # user defined constants
COND = 10.0
calc_code = "COND*WIDTH*x"  # x is a known changing Variable
# end user input

# begin hidden fixed program code
code = compile(
'''
def calc(x):  # function that executes the user code
    return ''' + calc_code  
, '<string>', 'exec') 
exec(code)  # for python 2.x remove brackets

for x in range(10):
    print(calc(x))  # for python 2.x remove brackets
# end hidden fixed program code

问题是用户代码执行非常频繁并且显着减慢了计算速度。是否有可能以某种方式自动查找并预先计算代码中的常数项(COND*WIDTH)以显着加快速度?

4

0 回答 0