|
5鱼币
- class B:
- def fun(self):
- print('正在调用B类')
- class A:
- pass
- A.__bases__ += (B,)
- a = A()
- a.fun(a)
复制代码
根据那篇拓展阅读,这样子的话应该就可以让A用B的方法了,但是结果出了一个MRO错误求教为什么啊
TypeError: Cannot create a consistent method resolution
order (MRO) for bases B, object
- class B:
- def fun(self):
- print('正在调用B类')
- class C:
- pass
- class A(B):
- pass
- a = A()
- print(A.__bases__)
- A.__bases__ += (C,)
- print(A.__bases__)
- a.fun()
复制代码
我修改成这样是可以的,A.__bases__ += (B,)这个使用应该要A有基类的情况下才能使用
这种是开发阶段使用正式的时候应该不被允许修改基类 因为这样很容易出错
|
最佳答案
查看完整内容
我修改成这样是可以的,A.__bases__ += (B,)这个使用应该要A有基类的情况下才能使用
这种是开发阶段使用正式的时候应该不被允许修改基类 因为这样很容易出错
|