redaiconglin 发表于 2022-3-25 17:09:56

各位老师为什么会提示错误

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()
运行是提示get_a()没有被继承AttributeError: 'C' object has no attribute 'get_a',谢谢老师帮我看看

isdkz 发表于 2022-3-25 17:15:04

继承的父类只能在定义类的时候来决定,

你用 C.__bases__ + (A, B,) 只是拼接了一个包含 C的父类、A类、B类 的元组而已,

并没有任何意义

redaiconglin 发表于 2022-3-25 22:10:07

isdkz 发表于 2022-3-25 17:15
继承的父类只能在定义类的时候来决定,

你用 C.__bases__ + (A, B,) 只是拼接了一个包含 C的父类、A类、 ...

谢谢老师,那如果我想在这段代码里面使用这个c.__bases__+(A,B,)如何才能运行。因为看到小甲鱼老师有讲到这个的扩展知识但照着做却不知道怎么做。

isdkz 发表于 2022-3-25 22:12:16

redaiconglin 发表于 2022-3-25 22:10
谢谢老师,那如果我想在这段代码里面使用这个c.__bases__+(A,B,)如何才能运行。因为看到小甲鱼老师有 ...

哪里有讲到?能发一下链接吗?不能在类定义好之后才去决定它的父类的吧

redaiconglin 发表于 2022-3-25 22:50:10

isdkz 发表于 2022-3-25 22:12
哪里有讲到?能发一下链接吗?不能在类定义好之后才去决定它的父类的吧

https://fishc.com.cn/forum.php?mod=viewthread&tid=48888&extra=page%3D3&mobile=2
叫python的Mixin机制

isdkz 发表于 2022-3-25 23:20:38

redaiconglin 发表于 2022-3-25 22:50
https://fishc.com.cn/forum.php?mod=viewthread&tid=48888&extra=page%3D3&mobile=2
叫python的Mixin机 ...

找不到解决方法的时候你可以翻一翻评论区,

你可以看一下这位大佬的说法:https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=48888&pid=2512931

redaiconglin 发表于 2022-3-26 09:39:06

isdkz 发表于 2022-3-25 23:20
找不到解决方法的时候你可以翻一翻评论区,

你可以看一下这位大佬的说法:https://fishc.com.cn/for ...

谢谢老师
页: [1]
查看完整版本: 各位老师为什么会提示错误