墨羽鱼 发表于 2022-4-8 16:48:34

使用__bases__怎么出错了

class A:
    def get_a(self):
      print( 'a')

      
class B:
    def get_b(self):
      print ('b')

      
class C:
    pass

C.__bases__ += (A, B, )
Traceback (most recent call last):
File "<pyshell#125>", line 1, in <module>
    C.__bases__ += (A, B, )
TypeError: Cannot create a consistent method resolution
order (MRO) for bases object, A, B

isdkz 发表于 2022-4-8 16:51:15

你可以看一下这个:
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=48888&pid=2512931

墨羽鱼 发表于 2022-4-8 16:56:33

isdkz 发表于 2022-4-8 16:51
你可以看一下这个:
https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=48888&pid=2512931

就是按上面打出来运行报错{:10_266:}

isdkz 发表于 2022-4-8 17:07:00

墨羽鱼 发表于 2022-4-8 16:56
就是按上面打出来运行报错

不是,我叫你看的是评论区的那个,不知道为什么我发的那个地址没有跳过去,

你翻到 14 楼

墨羽鱼 发表于 2022-4-8 17:59:17

class X:
    pass
class A(X):
    def get_a(self):
      print( 'a')

class Y:
   pass
class B(Y):
    def get_b(self):
      print ('b')

class Z:
    pass      
class C(Z):
    pass


C.__bases__ += (A, B,)
c=C()
c.get_a()
c.get_b()

isdkz 发表于 2022-4-8 19:03:11

本帖最后由 isdkz 于 2022-4-8 19:08 编辑

墨羽鱼 发表于 2022-4-8 17:59
class X:
    pass
class A(X):


A 和 B 不需要继承一个类,需要动态修改基类的那个类不是默认的类(新式类,继承 object)就可以了:

class A:
    def get_a(self):
      print( 'a')

class B:
    def get_b(self):
      print ('b')

class D:
    pass

class C(D):
    pass

C.__bases__ += (A, B, )
c=C()
c.get_a()
c.get_b()
页: [1]
查看完整版本: 使用__bases__怎么出错了