【发布时间】:2013-12-22 23:54:13
【问题描述】:
我的代码如下,其中sdl2ext.Entity是第三方类。
class Grid(sdl2ext.Entity):
def __init__(self, world):
self.w = 3
self.h = 3
super(Grid,self).__init__()
def dump(self):
print(self.w)
def run():
world = sdl2ext.World()
g = Grid(world)
g.dump()
if __name__ == "__main__":
run()
我得到的具体错误是print(self.w):
AttributeError: object ''Grid'' has no attribute ''w''
这是否与未初始化底层基础对象 sdl2ext.Entity 有关?
【问题讨论】:
-
设置私有属性后为什么还要初始化超类?
-
因为这里给出的答案:stackoverflow.com/questions/10670020/…。特别是在接受的答案中给出的
CastSpell类的定义。 -
你误会了。为什么要在设置私有属性之后而不是之前初始化超类?
-
@BartoszKP 你能详细说明一下吗?
-
@Ignacio,在该链接问题的已接受答案中,超类在私有属性之后初始化。我认为这样做是可以的。
标签: python