我正在尝试创建Command类的子类,但我一直收到错误:
元类冲突:派生类的元类必须是a (非严格的)所有基础的元类的子类
class Command(object):
def __init__(self, sock, str):
self.sock = sock
self.str = str
def execute(self):
pass
from src import Command
class BroadcastCommand(object, Command):
def __init__(self, sock, str):
super(Command, self).__init__()
def execute(self):
self.broadcast()
def broadcast(self):
print(str)
我的Command.py文件和BroadcastCommand.py文件当前位于同一个软件包目录中。
答案 0 :(得分:0)
如果object
继承自BroadcastCommand
,那么从object
和Command
继承Command
是没有用的 - 它足以继承自{{1}它确实提高了你得到的TypeError
。解决方案:将BroadcastCommand
仅从Command
继承。
作为旁注,您的super
来电应为
super(BroadcastCommand, self).__init__(sock, str)
并命名您的参数str
可能不是一个好主意。