optimaler weg um constanten zu gruppieren?

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
klaus1234
User
Beiträge: 15
Registriert: Dienstag 22. September 2020, 08:59

Hi
ich schreibe gerade eine Steuersoftware für eine Motor Steuerung. Ich habe verschiedene Befehle/Konstanten. Wie mache ich das am besten damit PEP 8 mir keien Fehler hinwirft? Oder was ist die beste Lösung?

class MotorDriver:
turn_right_one_step = 1
turn_left_one_step = 2
turn_left_continous = 3
turn_right_continous = 4
turn_speed = 5
...
turn_get_degree
Bl3nder
User
Beiträge: 139
Registriert: Freitag 3. Januar 2020, 17:07

Ich weiß nicht genau was du zum Programmieren benutzt.


Jedoch :

Code: Alles auswählen

class MotorDriver:
    turn_right_one_step = 1
    turn_left_one_step = 2
    turn_left_continous = 3
    turn_right_continous = 4
    turn_speed = 5
muss es erstmal eingerückt werden und dann kommt es drauf an in Pycharm zeigt er mir Grün unterstrichen Wörter an die er einfach nicht kennt ( wenn das Wörter sind die man öfter benutzt kannst du rechtsklick drauf machen und to dictonary dann geht das weg jedoch sollte man KONSTANTEN immer groß schreiben
Eine Vision ohne Aktion bleibe eine Illusion
einfachTobi
User
Beiträge: 512
Registriert: Mittwoch 13. November 2019, 08:38

Konstanten werden gem. PEP8 KOMPLETT_GROSS geschrieben.
klaus1234
User
Beiträge: 15
Registriert: Dienstag 22. September 2020, 08:59

PEP 8 meckert dass eine __init__ Methode fehlt. Was mache ich da?
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Wenn Du kein __init__ hast, dann hast Du keine Klasse, sondern ein Enum.
Bl3nder
User
Beiträge: 139
Registriert: Freitag 3. Januar 2020, 17:07

Ich weiß nicht was du vor hast ab das wäre eventuell eine möglichkeit :

Code: Alles auswählen

class MotorDriver:
    def __init__(self):
        pass

    def turn_right_one_step(self):
        pass

    def turn_left_one_step(self):
        pass

    def turn_left_continous(self):
        pass

    def turn_right_continous(self):
        pass

    def turn_speed(self):
        pass





motor_steuern = MotorDriver()
motor_steuern."hier kannst du dann auf die Funktionen zugreifen"
Eine Vision ohne Aktion bleibe eine Illusion
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@klaus1234: Wenn eine `__init__()` fehlt dann schreib eine. Ich meine irgendwie wird man doch einen `MotorDriver` initialisieren müssen‽
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
klaus1234
User
Beiträge: 15
Registriert: Dienstag 22. September 2020, 08:59

@__blackjack__
ich habe alle meine Befehle in eine einzelne Klasse geoackt. Die Klasse hat nur Konstanten.
Oder ist das an sich schon falsch?
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Welche Befehle? Zeig doch mal Deinen kompletten Code.
Benutzeravatar
__blackjack__
User
Beiträge: 14053
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@klaus1234: Wenn Du eine Klasse hast die nur Konstanten hat, dann wurde ja Enum schon erwähnt, also schau Dir mal das `enum`-Modul an.

Dann wäre der Name `MotorDriver` irreführend, denn da würde man einen Treiber erwarten, also etwas das Code enthält um irgendein Gerät anzusteuern, und nicht nur Konstanten.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten