我正在try 使用ursina模块,并输入了以下代码:

from ursina import *

class Game(Ursina):
    def __init__(self):
        pass

它会生成以下错误:

>>> from ursina import *
>>> class Game(Ursina):
>>> ...     def __init__(self):
>>> ...
Traceback (most recent call last):
File "<test>", line 3, in <module>
class Game(Ursina):
TypeError: function() argument 'code' must be code, not str

我没有code的论点,所以我不知道这是指什么.

有人能解释并修复这个错误吗?

推荐答案

请参见Ursina issue 579.

这是Ursina包的一个限制,它不允许您继承Ursina类的子类.

Ursina级的定义为:

@singleton
class Ursina(ShowBase):
    ...

singleton则是:

def singleton(cls, **kwargs):
    def getinstance(**kwargs):
        if not hasattr(cls, '_instance') or not cls._instance:
            cls._instance = cls(**kwargs)
        return cls._instance

    return getinstance

这意味着修饰后的Ursina实际上是singleton返回的函数,而不是类,因此不能进行子类化.

Python相关问答推荐

比较2 PD.数组的令人惊讶的结果

如何列举Pandigital Prime Set

NP.round解算数据后NP.unique

Streamlit应用程序中的Plotly条形图中未正确显示Y轴刻度

Stacked bar chart from billrame

我想一列Panadas的Rashrame,这是一个URL,我保存为CSV,可以直接点击

如何在UserSerializer中添加显式字段?

在两极中过滤

如何在TensorFlow中分类多个类

AES—256—CBC加密在Python和PHP中返回不同的结果,HELPPP

numpy.unique如何消除重复列?

将一个双框爆炸到另一个双框的范围内

为什么dict. items()可以快速查找?

当我定义一个继承的类时,我可以避免使用`metaclass=`吗?

文本溢出了Kivy的视区

时间戳上的SOAP头签名无效

关于数字S种子序列内部工作原理的困惑

了解如何让库认识到我具有所需的依赖项

将时间序列附加到数据帧

如何在networkx图中提取和绘制直接邻居(以及邻居的邻居)?