Ich frage mich, ob es möglich ist, dynamisch Objekte zu Objekten hinzuzufügen. Zum Beispiel möchte ich in der Lage sein, so etwas wie hinzufügen:Python: Felder dynamisch zu Objekten hinzufügen
user = object()
user.first_name = 'John'
user.last_name = 'Smith'
Wenn ich das in Python Kommandozeile interpretor ausführen ich:
AttributeError: 'object' object has no attribute 'first_name'
Jede Idee?
Danke, die für mich gearbeitet. Ich habe zwei Fragen 1) Was bedeutet das Schlüsselwort "pass" hier? 2) Wenn ich in meinem Code eine andere Obj2-Instanz von Object() habe, erstellt obj.x obj2.x (mit einem nicht definierten Wert)? – Rafid
1) In Bezug auf 'pass': http://docs.python.org/tutorial/controlflow.html#pass-statements 2) Nein, wenn Sie' obj.x = 5', fügen Sie nur 'x' Attribut hinzu einzelne Instanz von 'Object'. Wenn Sie möchten, dass alle 'Object'-Instanzen x teilen, müssen Sie' Object.x = 5' ausführen. – gruszczy
In Python gibt es keinen undefinierten Wert - der nächste, den es bekommt, ist 'None'. Objekte, die wie Gruszczy vorgeschlagen werden, haben keinen Prototyp. Sie können Attribute nach Belieben hinzufügen und löschen und haben keine Auswirkungen auf andere Instanzen der Object-Klasse. –