私はAlgoSystemという名前のクラスで作業しています.AlgorSystemは、初期化の下で入力としてstrategy_0とstrategy_1と戦略の数(この例では2)を指定しています。戦略クラスは、AlgoSystem内の「戦略」と呼ばれる辞書に格納されます。 strategy_0とstrategy_1はどちらもの異なるクラスですが、両方とも "__on_tick"という関数があります。 AlgoSystemクラス内から呼び出したいこれらの関数。 これを行うには、私の現在の試みは、以下の見ている:私は上記のコードを実行すると別のクラスからクラス固有のメソッドを呼び出す
class AlgoSystem:
def __init__(self, strategy_0, strategy_1, numstrategies):
self.var= 1
self.strategies = {0 : strategy_0,
1 : strategy_1}
self.num_strategies = numstrategies
def start(self):
for i in range(self.num_strategies):
self.strategies[i].__on_tick(self.var)
class Strategy_zero:
def __init__(self, x):
self.x = x
def __on_tick(self, var):
self.x = self.x + var
print(self.x)
class Strategy_one:
def __init__(self, y):
self.y = y
def __on_tick(self, var):
self.y = self.y - var
print(self.y)
strategy_0 = Strategy_zero(2)
strategy_1 = Strategy_one(4)
num_strategies = 2
system = AlgoSystem(strategy_0, strategy_1, 2)
system.start()
は、私はエラーが与えられています:
は、どうやら私はクラスの関数を呼び出していないよ「と__on_tick "適切に。私はこれをどのようにするべきですか?私はある意味でそれを行う必要があるので、私はAlgoSystem内で定義された辞書を使って2つのサブクラス(strategy_0とstrategy_1)の変更を追跡します: "戦略"。