Liste mit Objekten nach Namen durchsuchen

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
Ekua
User
Beiträge: 10
Registriert: Freitag 26. Juni 2020, 09:53

Hallo zusammen,
ich möchte eine Liste mit Objekten nach einem bestimmten Objekt durchsuchen und dann dessen Wert weiterverwenden. Der untenstehende Code funktioniert, jedoch hätte ich gerne für die Übersichtlichkeit den Namen des Objekts in temperatur_10 mit drin. Die index() Funktion hat mir bisher nicht weitergeholfen, da die Objektnamen keine strings sind und ansonsten der Objektname unbekannt ist.
temperature_10 wird in einem anderen Modul gebraucht als der Rest des Codes.
Ich hoffe es ist verständlich was ich meine..
danke für eure Hilfe!

class fixVariable:
def __init__(self, name, value, status):
self.name = name
self.value = value
self.status = status
return

Tl_in = fixVariable('Tl_in', 15, False)
pl_in = fixVariable('pl_in', 100000, False)
WS_medium = fixVariable('WS_medium', 'Air', False)
mdot_ws = fixVariable('mdot_ws', 1, True)
T_ppC = fixVariable('T_ppC', 5, False)

WSAttributes = [Tl_in, pl_in, WS_medium, mdot_ws, T_ppC]

temperature_10 = WSAttributes[0].value + WSAttributes[4].value
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Ich verstehe nicht, was Du mit Objektname meinst, was die Klasse fixVariable für einen Sinn hat, und wo temperatur_10 denn noch benutzt werden soll.

Variablennamen schreibt man komplett klein, benutze keine Abkürzungen und keine expliziten Indices. Klassen werden Mit großem Anfangsbuchstaben geschrieben: FixVariable, wobei wie schon geschrieben, die Kombination aus fix und variabel nicht zusammenpasst.

Warum ist temperatur_10 nicht einfach auch eine FixVariable?
xXSkyWalkerXx1
User
Beiträge: 379
Registriert: Mittwoch 27. Juni 2018, 17:39

Der Code ist leider unverständlich, aufgrund der Abkürzungen.

Aber zu deinem Problem - benutze Dictionaries:
statt...

Code: Alles auswählen

WSAttributes = [Tl_in, pl_in, WS_medium, mdot_ws, T_ppC]
benutze...

Code: Alles auswählen

WSAttributes = {'Tl_in': Tl_in, 'WS_medium':WS_medium, 'mdot_ws':mdot_ws, 'T_ppC':T_ppC}
So kannst du items des dicts wie folgt ansprechen:

Code: Alles auswählen

print(WSAttributes['Tl_in'])
Ekua
User
Beiträge: 10
Registriert: Freitag 26. Juni 2020, 09:53

Der Hinweis mit dem Dictionary war sehr hilfreich. Danke!
Antworten