Befehl in eine Klasse übergeben

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Fisch00
User
Beiträge: 2
Registriert: Montag 20. März 2023, 20:04

Guten Abend,

leider konnte ich mein Problem nicht im Internet finden. Und zwar würde ich gerne einen Befehl einer Klasse mitgeben, so dass dieser in der Klasse ausgeführt wird.

Code: Alles auswählen

class Encoder(command)
   def count():
         command
so in etwa, der Befehl steuert einen Motor an. Da nicht immer der gleiche Motor angesteuert wird, variieren die einzelnen Komponenten des Befehls.

Code: Alles auswählen

motor_kit1.motor1.throttle=1
das ist der Befehl.

Evlt. hat jemand eine Idee wie das funktioniert oder eine ganz andere Idee.
Ich freue mich schon auf eure Antworten!
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Warum erbt denn deine Klasse von einer Klasse "command"?

Insgesamt sind die Informationen ein bisschen sehr düftig.
Warum ist das überhaupt eine Klasse? Klassen sind dazu da, einen Zustand für ein Objekt vorzuhalten. Wenn der Motor ein Teil dieses Status ist, musst du gar keinen Befehl übergeben sondern nur eine Methode aufrufen, die den Motor berücksichtigt?

Ich würde vorschlagen, du holst etwas weiter auf und erklärst den ganzen Sachverhalt - nicht nur, was du für die Lösung hälst.
Fisch00
User
Beiträge: 2
Registriert: Montag 20. März 2023, 20:04

Erstmal danke für die schnellen Antworten. Die Grundidee liegt darin einen Encoder via ein MotorHAT anzusteuern. Nun dachte ich mir, dass ich eine Klasse nutze, um nicht jedes mal, wenn ich ein neues Programm schreibe, die Befehle für den Encoder neu zu schreiben/rein zu kopieren. Aber ich sehe gerade selber das Problem, mit der Trennung von Befehlen und Daten.
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Es kann - muss aber nicht - richtig sein eine Klasse zu bauen.
Aber wie bereits gesagt: dafür musst du etwas weiter ausholen.
Im Moment hast du 4 Zeilen Code gezeigt, von denen 3 ausgedacht aussehen. So kann man leider nicht helfen.
Antworten