ich bin mal wieder auf der Suche nach einer passenden Datenstruktur und hoffe ihr könnt mir wieder helfen.
Ich habe aktuell folgende Situation (das ist nur ein Beispielcode, damit man schnell sieht was das eigentliche Problem ist):
Code: Alles auswählen
COLOR = "BLUE"
NAME = "Superding"
class Machine:
def __init__(self, color, name, power, torque):
self.color = color
self.name = name
self.power = power
self.torque = torque
@property
def speed(self):
return self.power / self.torque
def get_data(excel):
if excel.range("D2").value == "x":
power_left = excel.range("A2").value
power_right = excel.range("B2").value
torque = excel.range("C3").value
return [
Machine(COLOR, NAME, power_left, torque),
Machine(COLOR, NAME, power_right, torque),
]
power = excel.range("B2").value
torque = excel.range("C3").value
return [Machine(COLOR, NAME, power, torque)]
def main():
for machine in get_data(excel):
print(machine.speed)
if __name__ == "__main__":
main()
Wie würdet ihr das machen?
Die Klassen habe ich, weil ich manche Eigenschaften für die Berechnungen öfters benötige und das eine Unmenge an Formeln sind, die ich nacheinander berechnen muss. Ich habe angefangen für jede Berechnung alle Werte als Argumente zu übergeben, das war total unübersichtlich und meiner Meinung nach ein rießen Chaos. Da dass hier meine berufliche Tätigkeit vereinfachen soll, würde ich den originalen Code ungern öffentlich teilen, da könnte dann schnell Firmen-Know-How auftauchen und dafür will ich nicht verantwortlich sein.
Ich hoffe ihr könnt mir trotz der dieses mal spärlichen Informationen ein paar Ratschläge geben.
Ich habe mir schon überlegt ob ich vielleicht schon mal eine Instanz mit den ganzen Konstanten anlegen könnte und wenn ich dann die Excel gelesen habe, müsste ich nur noch die Werte "hinzufügen". Also quasi in Richtung Vererbung, aber ob dass der richtige Weg ist?
Beim Versuch bin ich dann auf 'super' gestossen, aber man liest hier öfters "super ist super beschissen" und ja, letztendlich bin ich gerade total planlos und wollte mich jetzt nicht total verennen, da das Ganze auch neben dem Tagesgeschäft laufen sollte.
Ich sollte noch erwähnen, dass die Konstanten später Benutzereingaben sind. Also die jetzt einfach fest als Klassenkonstanten zu definieren, fliegt mir im übernächsten Schritt dann um die Ohren.
Bin auf eure Hinweise und Ratschläge gespannt.
Vielen Dank schon mal und viele Grüße
Dennis