Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Pyglet子类对象没有属性_Python_Python 3.x_Pyglet - Fatal编程技术网

Python 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

我正在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 __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菜单
实例,因此有东西传入了额外的参数。