Staatlicher, klassenbasierter iterativer Algorithmus mit Strategiemuster
Posted: 10 Feb 2025, 08:36
Ich habe einen iterativen Algorithmus mit Werten, die für jede Iteration spezifisch sind. Beide Subalgorithmen könnten jede der berechneten Zustandsvariablen bis zu dem Punkt verwenden (und ändern), an dem sie aufgerufen werden. Zu den Strategien, aber das nervt mich, da es auch einige noch nicht berechnete Werte enthüllt (im Iterationsgefühl; der Wert, der während der Iteration berechnet wurde. i zählt nicht bei Iteration i +1 usw.) (Nennen wir diese faulen Variablen?) > Haben Sie bessere Ideen?
Dann hängt die Signatur von Algo1 von State1 und algo2 ab. überschreiben ">
Code: Select all
class MyClass:
def __init__(self, dep1: Dep1, dep2: Dep2, algo1: Algo1, algo2: Algo2):
self.dep1 = dep1
self.dep2 = dep2
self.algo1 = algo1
self.algo2 = algo2
self.state_var1: T1
self.state_var2: T2
self.state_var3: T3
def __call__(self, n: int):
for i in range(n):
# compute state_var1
# compute state_var2
self.algo1(self)
# compute state_var3
self.algo2(self)
# etc
< /code>
Eine Option, die ich untersucht habe -Py PrettyPrint-Override ">class State1(Dependencies, Protocol):
state_var1: T1
state_var2: T2
class State2(Dependencies, Protocol):
state_var3: T3
Code: Select all
class Algo1(Protocol):
def __call__(self, state: State1): ...