【发布时间】:2011-11-20 22:49:41
【问题描述】:
我一直在玩 Python 的黑暗艺术,有一些我想帮助理解的东西。给定一个类Foo,下面是我尝试从它继承的一些方法:
-
class A(Foo)— 工作,不出所料 -
class B(Foo())— 提供的作品Foo有一个合适的__new__方法(我提供了) -
class C(Foo(), Foo)— 在与B相同的条件下工作 -
class D(Foo, Foo())— 给出著名的元类错误:回溯(最近一次通话最后一次):
文件“test.py”,第 59 行,在
D类(Foo,Foo()):
TypeError:元类冲突:派生类的元类必须是(非严格) 其所有基础的元类的子类
究竟是什么导致了这种冲突?当我从(Foo(), Foo)(实例第一,类第二)继承时,它可以工作,但是当我从(Foo, Foo())(类第一,实例第二)继承时,它不会。
【问题讨论】:
标签: python inheritance metaclass