Hier ist meine vereinfachte Code:Was passiert, wenn ich eine AliasProperty anbinde?
class Player(Widget):
_health = NumericProperty(100)
def _get_health(self):
return self._health
health = AliasProperty(_get_health, bind=['_health'])
ich das tat health
'nur lesbar' zu machen. Die seltsame Sache ist, es funktioniert nicht, wenn ich bind=['_health']
entferne.
Also meine Frage ist: Was macht bind=['_health']
eigentlich? Ich verstehe, AliasProperty
ermöglicht es mir, einen Getter und optionale Setter zu definieren, die beim Zugriff auf die Eigenschaft ausgeführt werden (ähnlich Python @property
).
Also was macht bind=['_health']
in diesem Fall, und warum funktioniert die Eigenschaft nicht (nicht den Zustand des zugrunde liegenden _health
widerspiegeln), wenn ich es ausschließe?
Ich sehe. Wenn 'right' 'sich ändert, wird nichts darüber bekannt sein, außer wir spezifizieren explizit, dass wir von' x' und 'width' abhängig sind. In diesem Fall wird ein Ereignis für die Alias-Eigenschaft ausgelöst, wenn sie geändert werden. Danke :) –