鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[扩展阅读] 多重继承的陷阱:钻石继承(菱形继承)问题

    [复制链接]
发表于 2018-2-24 17:07:50 | 显示全部楼层
滴滴滴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-2-28 16:53:56 | 显示全部楼层
图看不到了~~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-8 14:32:39 | 显示全部楼层
抱歉,第一次听说钻石继承.
谢谢,
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-26 16:09:48 | 显示全部楼层
老师讲解很精道,深入浅出,非常感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-1 12:46:17 | 显示全部楼层
Thank you to 小甲鱼!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-24 17:59:30 From FishC Mobile | 显示全部楼层
我能知道例子中不使用super().时的顺序,但我没看到使用super().时, 程序的执行顺序
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-3 11:51:26 | 显示全部楼层
可怜的某童鞋
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-6-14 16:09:41 | 显示全部楼层
涨知识!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

头像被屏蔽
发表于 2018-6-27 09:21:25 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-4 11:53:28 | 显示全部楼层
大佬永远是大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-11 20:20:13 | 显示全部楼层
哈哈,还是super().__init__()强大啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-16 15:10:05 | 显示全部楼层
这个方法解析顺序以及这个C3算法需要在使用的时候引用吗?还是Python内部机制?这块有点不明白,如果是内部机制,那最上面的那段代码怎么会得到那样的结果,如果是需要引入类似于super的方法,是不是意味着super方法提供了这种解析顺序和C3算法或者是触发了?那还有没有别的方式解决了呢?望指点,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-22 09:30:58 | 显示全部楼层
原来如此,MRO地址记一下⬇
https://www.python.org/download/releases/2.3/mro/
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-7-28 16:11:33 | 显示全部楼层
super大法好
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-22 17:06:23 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-14 09:44:24 | 显示全部楼层
学习了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-22 16:33:48 | 显示全部楼层
0.可以节约代码量
1.调用会报错
TypeError: __init__() should return None, not 'str'
2.子类定义了之后子类的这些属性和方法会覆盖父类的
3.可以在企鹅类下面重新定义飞的方法,覆盖父类的定义
4.可以自动找出父类的方法,而且符合哪个什么mro方法
5.结果会在调用B,C时都调用了基类A的__init__
6.
class A():
    def __init__(self):
        print("进入A…")
        print("离开A…")

class B(A):
    def __init__(self):
        print("进入B…")
        super().__init__()
        print("离开B…")
        
class C(A):
    def __init__(self):
        print("进入C…")
        super().__init__()
        print("离开C…")

class D(B, C):
    def __init__(self):
        print("进入D…")
        super().__init__()
        print("离开D…")



0.

import random as r
import math as m

class Point:
    def __init__(self):
        self.x = r.randint(-100,100)
        self.y = r.randint(-100,100)



      


class Line:
    def __init__(self,a,b):
        ab = (a[0]-b[0])**2 +(a[1]-b[1])**2
        print(round(m.sqrt(ab),2))


a = Point()
b = Point()
spot = []
spot.append((a.x,a.y))
spot.append((b.x,b.y))

l = Line(spot[0],spot[1])



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

使用道具 举报

发表于 2018-9-22 22:26:15 | 显示全部楼层
领教了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-2 23:56:16 | 显示全部楼层
应该懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-10-31 19:10:52 | 显示全部楼层
求解答:使用super函数后,输出的结果
进入D...
进入B...
进入C...
为什么B后是C?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-4 07:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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