You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

运行pyglet代码报AttributeError: 'int'无'_get_domain'属性如何解决

错误原因

你在初始化self.batch时没有对pyglet.graphics.Batch类进行实例化,直接将类本身赋值给了self.batch变量:

# 错误写法:未加括号完成实例化
self.batch = pyglet.graphics.Batch

调用self.batch.add()时,本质是直接调用类的实例方法,Python会自动把你传入的第一个参数4当成方法要求的self参数,因此会抛出“int类型没有对应属性”、“期望接收batch类型却收到int”的提示,和后续传入的参数逻辑无关。

解决方案

仅需修改self.batch的初始化代码,添加括号完成类的实例化即可:

# 修正写法:加括号实例化Batch类
self.batch = pyglet.graphics.Batch()

修改后完整的Model类代码参考:

class Model:
    def __init__(self):
        # 修正处:添加括号完成Batch实例化
        self.batch = pyglet.graphics.Batch()

        x,y,z = 0,0,0
        X,Y,Z = x+1,y+1,z+1

        color = ('c3f', (1,1,1)*4)

        self.batch.add(4, pyglet.gl.GL_QUADS, None, ('v3f', (x,y,z, X,y,z, X,Y,z, x,Y,z)), color)

    def draw(self):
        self.batch.draw()

修改后重新运行即可正常渲染图形。

内容的提问来源于stack exchange,提问作者HAPPY

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 09:09:02