ich einfach diskretes Systems in Python bin Codierung, die unten dargestellt:Liste ohne negative Indizierung
class System:
def __init__(self, a, b):
self.a = a
self.b = b
self.y = []
def dynamics(self, signal):
for i in range(len(signal)):
try:
self.y.append(signal[i] - self.a*self.y[i-1] - self.b*self.y[i-2])
except:
try:
self.y.append(signal[i] - self.a*self.y[i-1] - self.b*0)
except:
self.y.append(signal[i] - self.a*0 - self.b*0)
Das Klasse-System zielt darauf ab, das System und die Methode Dynamik zu modellieren die dynamische System Evolution durch diskrete Zeit zu berechnen. Ich dachte, dass es eine gute Idee wäre, die try/except-Struktur zu verwenden, um mit den ersten Schritten des Systems fertig zu werden - in unserem Fall die ersten beiden Schritte - in jedem der vorherigen Werte von y wäre nicht verfügbar. Nun, dieser Ansatz würde funktionieren, wenn das Listenobjekt keinen negativen Index akzeptiert, was nicht der Fall ist. Ich weiß, dass ich dieses Problem mit anderen Implementierungsansätzen lösen könnte, aber ich möchte damit fortfahren. Also, das ist meine Frage, wie könnte ich ein Listenobjekt erstellen und negative Indizierung deaktivieren. Ich würde einige Codeabschnitte schätzen.
Dank
Warum die Sprache bekämpfen? Es ist besser, einen Code zu schreiben, der der Sprache entspricht, als die Sprache an den Code anzupassen. – Meerness
Etwas zu erstellen, nur um es in einem 'try except'-Block arbeiten zu lassen, ist keine gute Idee. Stellen Sie sich vor, Sie sind Guido, Sie entwerfen eine Syntax für Benutzer, um Fehler in ihrem Code leicht zu handhaben, und Leute fangen an, Typen zu schaffen, um mit dieser Syntax zu arbeiten. Wie würdest du dich fühlen ? – Rockybilly
@Rockybilly er könnte sich freuen, dass Meta-Programmierung sein Werkzeug nützlicher gemacht. Siehe zum Beispiel django. – tdelaney