そのため、与えられた数値入力のみを使用して (pybrain を使用して) ネットワークを作成するクラスを Python で作成しています {Pybrain の API に慣れるためのちょっとしたプロセス}。
私の問題は、スコープがクラスでどのように機能するかについてかなり慣れていないことです。基本的にプログラムを適切にセットアップしているにもかかわらず、キーエラーが返され続けます。
操作が必要なすべての変数はinit関数で作成されます。私がクラスのために取り組んでいるメソッドは、Python の vars()[] メソッドを使用してinit関数で宣言された変数の 1 つを呼び出そうとしています。(コードの一部を実際に見ることができます...ラフ ドラフト: タプルの二項演算子を辞書項目に一致させる
とにかく、方法は次のとおりです。
def constructnetwork(self):
"""constructs network using gathered data in __init__"""
if self.recurrent:
self.network = pybrain.RecurrentNetwork
#add modules/connections here
elif self.forward:
self.network = pybrain.FeedForwardNetwork
else:
self.network = pybrain.network
print vars()[self.CONNECT+str(1)]
print vars()[self.CONNECT+str(2)]
print self.network
(スペースの悪さを許してください。うまくコピー アンド ペーストできませんでした。) KeyError を発生させている部分は、変数の値を取得する必要がある "print vars()[self.CONNECT+str(1)]" です。 Connection1" (self.CONNECT = 'Connection') ですが、keyerror を呼び出します。
転送する変数を取得するにはどうすればよいですか? 質問するのに役立つ情報がさらに必要な場合は、質問をできるだけ短くするようにしています.