Meine vereinfachte .kv
Datei:Warum bekomme ich "NoneType" -Objekt hat kein Attribut in. Kv-Datei?
<GameWorld>:
player: the_player
canvas:
Rectangle:
pos: 5, root.top - 25
size: self.player.health, 20 # error raised in this line
Player:
id: the_player
center: self.center
Meine vereinfachte Python-Datei:
class Player(Widget):
health = NumericProperty(50)
def __init__(self, **kwargs):
super(Player, self).__init__(**kwargs)
self.health = 100
class GameWorld(Widget):
player = ObjectProperty()
entities = ListProperty()
def __init__(self, **kwargs):
super(GameWorld, self).__init__(**kwargs)
self.entities.append(self.player)
Der Fehler erhalte ich:
AttributeError: 'NoneType' object has no attribute 'health'
Kivy denkt self.player
None
ist. Bitte hilf mir zu verstehen, was falsch ist.
neuen Stil Klassen IIRC werden Sie nicht durch 'self' tun Verweise auf Klassenmitglieder lassen. Benutze 'GameWorld.player'. Oder möglicherweise 'self .__ class __. Player'. –
ich hoffe [this] (http://stackoverflow.com/questions/10789296/attributeerror-nonetype-object-has-no-attribute-health) alter Beitrag kann Ihr Problem beantworten. – Spiderman
@BrianCain Ich dachte dasselbe (und schrieb eine Antwort auf diesen Effekt), aber das Testen in einer Shell zeigt an, dass das nicht korrekt ist. –