请问这个__base__怎么写的才对。。
class A:def get_a(self):
print ('a')
class B:
def get_b(self):
print ('b')
class C:
pass
C.__bases__ += (A, B, )
c = C()
c.get_a()
c.get_b() 杨东明 发表于 2021-7-11 16:44
python 0基础入门里面的扩展阅读Mixin编程机制是这么写的,不过我运行就报错:TypeError: Cannot create a...
去网上搜索了下,将 C 类添加 A,B 类的方法时,C 类必须是继承非与 A、B 同类,且继承非 object 类
因为 Python 中的类默认继承 object 基类,所以你这里 C 类继承类与 A、B 类相同,导致报错
改成这样即可执行代码:
class A:
def get_a(self):
print ('a')
class B:
def get_b(self):
print ('b')
class C_:
pass
class C(C_):
pass
C.__bases__ += (A, B)
c = C()
c.get_a()
c.get_b() python 0基础入门里面的扩展阅读Mixin编程机制是这么写的,不过我运行就报错:TypeError: Cannot create a consistent method resolution
order (MRO) for bases object, A, B
对A这么操作也是报错
A.__bases__ += (B,)
a.get_b() Twilight6 发表于 2021-7-11 16:42
去网上搜索了下,将 C 类添加 A,B 类的方法时,C 类必须是继承非与 A、B 同类,且继承非 object 类
...
感谢{:9_231:}
页:
[1]