Python Attributwerte eines Objektes ausgeben möglich?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

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
EchterNaivling 
Fragesteller
 09.07.2022, 19:01

Was hätte dieses Beispiel für eine Ausgabe?

1
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?

0
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]]]
1
vars(object).values()

Falls Du zwingend eine Liste brauchst, instanziere sie hieraus:

list(vars(object).values())