私は何か基本的なことを理解していないのでしょうか?私はIPythonと対話的にPythonを使用し、次のスクリプトを実行しています(VPPはVPPクラスとForecastクラスで書かれたモジュールですが、どちらもオブジェクトから拡張されています)。シェルで既知のインスタンスはスクリプトで使用されるとNameErrorを返しますか?
import os
import numpy as np
from VPPP import VPP, Forecast
setup = False
single_run = True
if setup:
vpp = VPP(foo=foo, bar=bar, ...)
forecast = Forecast('my_filename')
mapping = {'Forecast': 'PConInput.ys[xxx]', 'Price': 'tariffInput.ys[xxx]'}
if single_run:
fnext = forecast.predict(startday=146, nb_days=2)
vpp.adapt_forecasts(fnext, mapping)
vpp.optimize()
VPPのインスタンス化は、約2分かかりますので、私は、フラグsetup
とsingle_run
を持っている、と私は別のパラメータを使用して、後に単一の実行で同じVPPを使用します。
両方のフラグがTrue
のスクリプトを実行すると、すべて正常です。しかし、setup = False
で再度実行すると、errormessageが表示されます。NameError:name 'forecast'が定義されていません(fnext = ...
によって引き起こされます)。しかし、IPythonシェルに直接入力すると、すべてのインスタンスがわかり、すべてのコマンドが正常に動作します。
これはIPythonの問題ですか?スクリプトを実行するたびに、どのように私のvppオブジェクトのインスタンス化を避けることができますか?
お返事ありがとうございます。 Roel
? –
実際、 'single_run'にはもっと多くのコマンドがあります。私がしたいのは、startdayのようないくつかのパラメータを変更し、vppと予測オブジェクトを再インスタンス化せずに一連のコマンドを実行することです。 – saroele