Durch Erstellen von Datenspeichermodellen, die von der Expando-Klasse erben, kann ich veranlassen, dass meine Modell-Entitäten/Instanzen dynamische Eigenschaften haben. Das ist großartig! Aber was ich will ist, dass die Namen dieser dynamischen Eigenschaften zur Laufzeit sind. Ist das möglich?Hinzufügen einer benutzerdefinierten Eigenschaft (zur Laufzeit) zu einer Instanz der Expando-Klasse in Google App Engine?
Zum Beispiel
class ExpandoTest (db.Expando):
prop1 = db.StringProperty()
prop2 = db.StringProperty()
entity_one = ExpandoTest()
entity_two = ExpandoTest()
# what I do not want
entity_one.prop3 = 'Demo of dynamic property'
# what I want
entity_two.<property_name_as_entered_by_user_at_runtime> = 'This
property name was entered by the user, Great!!'
Ist das möglich? Wenn ja, wie geht das? Ich habe schon einige lustige Wege versucht, dies zu tun, aber nicht gelingen: P
Vielen Dank im Voraus.
S.Lott's Antwort ist korrekt; Sie sollten '__setattr__' nicht direkt aufrufen. –