Python Pyglet子类对象没有属性
我正在pyglet中开发一个游戏,这是第一次,尽管我通常使用pygame 我试图在pyglet中创建子类Python Pyglet子类对象没有属性,python,python-3.x,pyglet,Python,Python 3.x,Pyglet,我正在pyglet中开发一个游戏,这是第一次,尽管我通常使用pygame 我试图在pyglet中创建子类 class menu(pyglet.sprite.Sprite): def __init(self, *args, **kwargs): super(menu, self).__init__(self, *args, **kwargs) self.labels = {} class pause_menu(menu): def __ini
class menu(pyglet.sprite.Sprite):
def __init(self, *args, **kwargs):
super(menu, self).__init__(self, *args, **kwargs)
self.labels = {}
class pause_menu(menu):
def __init__(self, *args, **kwargs):
super(pause_menu, self).__init__(self, *args, **kwargs)
self.labels['resume'] = pyglet.text.Label('Resume Game', font_name='Times New Roman', font_size=36, x=window.main.width//2, y=window.main.height//2)
我得到了这个错误
File "C:\Python33\lib\site-packages\pyglet\sprite.py", line 225, in __init__
self._texture = img.get_texture()
AttributeError: 'pause_menu' object has no attribute 'get_texture' 'get_texture'.
发生了什么事?我是不是用的超级错了
顺便说一句:
正在从另一个模块调用该类
pause_menu = menu.pause_menu(x=0, y=0, batch=menu_batch, img=None)
调用父级
\uuuu init\uuuu
时出错;使用super(菜单,self)。\uuuuu初始化(*args,**kwargs)
。该方法由super()
为您绑定
您还错误地命名了菜单。\uuuu init\uuuu
,在末尾缺少一个双下划线
class menu(pyglet.sprite.Sprite):
def __init__(self, *args, **kwargs):
super(menu, self).__init__(*args, **kwargs)
self.labels = {}
class pause_menu(menu):
def __init__(self, *args, **kwargs):
super(pause_menu, self).__init__(*args, **kwargs)
self.labels['resume'] = pyglet.text.Label('Resume Game', font_name='Times New Roman', font_size=36, x=window.main.width//2, y=window.main.height//2)
由于您显式地传入了self
,因此pyglet.sprite.sprite.\uuu init\uuu()
将使用两个位置参数调用,这两个参数都引用self
因此,第二个
self
参数被视为和pyglet
尝试调用它。您的意思是将self从uuu init_uuu(self,*args,**kwargs)中移除,它产生了与您在两个位置使用它相同的错误,其中一个从未调用过。定义“仍然不工作”?你仍然得到同样的异常吗?或者你现在有不同的例外吗?如果您得到了完全相同的异常,您确定保存了源文件并重新启动了python脚本吗?如果在某个地方引入一个额外的“print()”行,会发生什么情况?同样的例外,如果我在super之前添加一个print行,我得到的只是hello和errorNo,那么回溯是否仍然相同?它是在同一位置引起的吗?最初的回溯指向pause_菜单类中的super,现在它指向菜单类中的super。是的,我删除了两个双self。而且暂停菜单
仍然是回溯的一部分,对吗?异常仍然声称行img.get\u texture()
在get\u texture
上为pause\u菜单
类型提供了属性错误?然后第一个参数仍然是pause\u菜单
实例,因此有东西传入了额外的参数。