我试图创建一个命令类的子类,但我不断得到错误:
metaclass conflict: the metaclass of a derived class must be a (non-strict) subclass of the metaclasses of all its bases
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)
我的命令.py文件和广播命令.py文件当前在同一个包目录中。你知道吗
如果
Command
从object
继承,那么从object
和Command
继承BroadcastCommand
是没有用的—它从Command
继承就足够了,而且它确实提高了您得到的TypeError
。解决方案:使BroadcastCommand
仅从Command
继承。你知道吗顺便说一下,您的
super
调用应该是命名参数
str
可能不是个好主意。你知道吗相关问题 更多 >
编程相关推荐