私の簡略化.kv
ファイル:なぜ、 `` NoneType 'オブジェクトに.kvファイルの属性がありませんか?
<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
マイ簡略化されたPythonファイル:
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)
私が取得エラー:
AttributeError: 'NoneType' object has no attribute 'health'
Kivyがself.player
がNone
であると考えています。何が間違っているのか理解してください。
IIRC新しいスタイルクラスを使用すると、self' 'を通じて、クラスのメンバへの参照を行うことはできません。 'GameWorld.player'を使用してください。またはおそらく '自己.__クラス__。プレーヤー '。 –
私は[これ](http://stackoverflow.com/questions/10789296/attributeerror-nonetype-object-has-no-attribute-health)古い投稿あなたの問題に答えることを願っています。 – Spiderman
@BrianCain私は同じことを考えて(そして、その効果に対する答えを掲示しましたが)シェルでテストすると、それが正しくないことが示されます。 –