Python 单一继承导致TypeError:元类冲突:派生类的元类必须为
我试图创建一个命令类的子类,但我不断得到错误: 元类冲突:派生类的元类必须是 (非严格的)所有基元类的子类Python 单一继承导致TypeError:元类冲突:派生类的元类必须为,python,python-3.x,oop,inheritance,Python,Python 3.x,Oop,Inheritance,我试图创建一个命令类的子类,但我不断得到错误: 元类冲突:派生类的元类必须是 (非严格的)所有基元类的子类 My Command.py文件和BroadcastCommand.py文件当前在同一个包目录中。如果命令继承自对象,则使广播命令继承自对象和命令-继承自命令就足够了,它确实会引起你得到的TypeError。解决方案:使BroadcastCommand仅从Command继承 作为旁注,您的super呼叫应该是 super(BroadcastCommand, self).__init__(so
My Command.py文件和BroadcastCommand.py文件当前在同一个包目录中。如果
命令继承自对象
,则使广播命令
继承自对象
和命令
-继承自命令就足够了,它确实会引起你得到的TypeError
。解决方案:使BroadcastCommand
仅从Command
继承
作为旁注,您的super
呼叫应该是
super(BroadcastCommand, self).__init__(sock, str)
命名paramstr
可能不是一个好主意。这不是您发布的代码会导致的错误消息。为什么要在BroadcastCommand
中将对象子类化?这将始终是一个问题,因为它会弄乱MRO。OP的super()
调用可以简化为super()。\uuuu init\uuuu(sock,str)
,因为Python 3允许您在不带参数的情况下调用super()
,只在类定义中调用。
super(BroadcastCommand, self).__init__(sock, str)