柔軟なシミュレーション プログラムを作成します。ユーザーが 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) を自動的に見つけて事前計算し、大幅な高速化を実現することはできますか?