鱼C论坛

 找回密码
 立即注册
查看: 953|回复: 6

[已解决]各位老师为什么会提示错误

[复制链接]
发表于 2022-3-25 17:09:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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',谢谢老师帮我看看
最佳答案
2022-3-25 17:15:04
继承的父类只能在定义类的时候来决定,

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

并没有任何意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-3-25 17:15:04 | 显示全部楼层    本楼为最佳答案   
继承的父类只能在定义类的时候来决定,

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

并没有任何意义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-25 22:10:07 From FishC Mobile | 显示全部楼层
isdkz 发表于 2022-3-25 17:15
继承的父类只能在定义类的时候来决定,

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

谢谢老师,那如果我想在这段代码里面使用这个c.__bases__+(A,B,)如何才能运行。因为看到小甲鱼老师有讲到这个的扩展知识但照着做却不知道怎么做。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

哪里有讲到?能发一下链接吗?不能在类定义好之后才去决定它的父类的吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-25 22:50:10 From FishC Mobile | 显示全部楼层
isdkz 发表于 2022-3-25 22:12
哪里有讲到?能发一下链接吗?不能在类定义好之后才去决定它的父类的吧

https://fishc.com.cn/forum.php?mod=viewthread&tid=48888&extra=page%3D3&mobile=2
叫python的Mixin机制
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-25 23:20:38 | 显示全部楼层


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

你可以看一下这位大佬的说法:https://fishc.com.cn/forum.php?m ... 888&pid=2512931
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-3-26 09:39:06 | 显示全部楼层
isdkz 发表于 2022-3-25 23:20
找不到解决方法的时候你可以翻一翻评论区,

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

谢谢老师
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-6 18:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表