函数() 参数 'code' 必须是代码,而不是字符串
我正在尝试使用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
这个参数,所以我不知道这个错误指的是什么。
有人能解释一下并帮我解决这个错误吗?
1 个回答
5
请查看Ursina的第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
返回的一个函数,而不是一个类,因此你不能去扩展它。