Python Attributwerte eines Objektes ausgeben möglich?
Hallo.
Ich würde gerne die Attributwerte eines Objektes als String in einer Liste speichern.
Wie geht das? "vars" ist hier unbrauchbar, da die Funktion auch die Attributnamen mit einträgt.
Welche andere Variante kann ich nutzen?
Viele Grüße,
euer EchterNaivling
2 Antworten
Vom Beitragsersteller als hilfreich ausgezeichnet
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Python
Ich hätte dieses Problem mit dieser Variante gelöst
class klasse:
def __init__(self, vorname, name, x, y):
self.vorname = vorname
self.name = name
self.data_x = x
self.data_y = y
def main():
liste = []
person_1 = klasse('Musterman', 'Max', [42, 23], [1, 2, 3])
person_2 = klasse('Müller', '', [32, 54], [3, 2, 1])
liste.append(person_1.__dict__)
liste.append(person_2.__dict__)
print(liste)
if __name__ == '__main__':
main()
Ist es das was du gemeint hast?
Woher ich das weiß:eigene Erfahrung
Hanibal545
09.07.2022, 19:04
@EchterNaivling
Die Ausgabe wäre:
[{'vorname': 'Musterman', 'name': 'Max', 'data_x': [42, 23], 'data_y': [1, 2, 3]}, {'vorname': 'Müller', 'name': '', 'data_x': [32, 54], 'data_y': [3, 2, 1]}]
Oder willst du nur die Attributwerte?
@EchterNaivling
Wie kann man denn nur die Attributwerte erhalten?
Hanibal545
09.07.2022, 19:19
@EchterNaivling
sonst halt so
class klasse:
def __init__(self, vorname, name, x, y):
self.vorname = vorname
self.name = name
self.data_x = x
self.data_y = y
def main():
liste = []
person_1 = klasse('Musterman', 'Max', [42, 23], [1, 2, 3])
person_2 = klasse('Müller', '', [32, 54], [3, 2, 1])
print(getattr(person_1, 'vorname'))
liste.append(list(vars(person_1).values()))
liste.append(list(vars(person_2).values()))
print(liste)
if __name__ == '__main__':
main()
Output:
[['Musterman', 'Max', [42, 23], [1, 2, 3]], ['Müller', '', [32, 54], [3, 2, 1]]]
Von gutefrage auf Grund seines Wissens auf einem Fachgebiet ausgezeichneter Nutzer
Computer, programmieren, Informatik
vars(object).values()
Falls Du zwingend eine Liste brauchst, instanziere sie hieraus:
list(vars(object).values())
Was hätte dieses Beispiel für eine Ausgabe?