当前位置: 首页 > 面试题库 >

调用元类基数时出错:function()参数1必须是代码,而不是str

唐骏祥
2023-03-14
问题内容

我试图子类化threading.Condition今天早些时候,但没有奏效。当我尝试对threading.Condition类进行子类化时,这是Python解释器的输出:

>>> import threading
>>> class ThisWontWork(threading.Condition):
...     pass
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Error when calling the metaclass bases
    function() argument 1 must be code, not str

有人可以解释这个错误吗?谢谢!


问题答案:

之所以得到该异常,是因为尽管它具有类名,但它threading.Condition是一个函数,并且不能对函数进行子类化。

>>> type(threading.Condition)
<type 'function'>

在Python
Bugtracker上
已经引发了这个不是很有帮助的错误消息,但已将其标记为“无法修复”。



 类似资料:
  • 我正在用python制作一个潜艇游戏,但当我试图运行它时,解释器给了我一个非常奇怪的错误:“TypeError:参数1必须是pygame.Surface,而不是type。”我试图在网上搜索我的答案,但这似乎不是很常见的错误。我也试着自己去发现错误,但我觉得一切都很好。下面是我认为错误所在的部分代码:

  • 我正在编写一个小型python游戏,我的一些代码似乎不起作用。看一看: 是啊......所以错误是:

  • 我正在尝试使用Python、pygame和OOP从头开始构建一个乒乓球游戏(我知道,这不是使用OOP的最佳语言)。当前具有以下类结构: 游戏对象(对象)| |球(游戏对象)| |桨(游戏对象) 注:球扩展游戏对象 当我试图创建一个球,一个错误显示: 超级(gameDisplay)类型错误:超级()参数1必须是类型,而不是pyplay。表面 有人能帮我吗?

  • 我有一个问题,我做了一个乒乓游戏,但我有一个问题,把分数打印到pyplay窗口。 我得到错误'TypeError:参数1必须是pygame.Surface,而不是str 我在文本中输入了blit,但出现了一个错误。我知道代码乱七八糟,我稍后会修复它

  • 我正在使用pygame创建一个游戏,但遇到了一个错误,我是pygame的新手。我正在使用python 3.8和pycharm社区版2020.1 这是我制作游戏的视频:https://www.youtube.com/watch?v=FfWpgLFMI7w这里是错误: 这是我的密码: