super 是用来解决多重继承问题的,直接用类名调用父类方法在使用单继承的时候没问题,但是如果使用多继承,会涉及到查找顺序(MRO)、重复调用(钻石继承)等种种问题。总之前人留下的经验就是:保持一致性。要不全部用类名调用父类,要不就全部用 super,不要一半一半。
普通继承
复制代码 代码如下:
class FooParent(object):
def __init__(self):
self.parent = ‘I\’m the parent.’
可参考链接:is-a和has-a的区别
1、has a 关系
has a :一个类中使用了另外一种自定义的类型
类型:
系统类型
str、 int、 float、 list 、dict 、 tuple、 set
自定义类型
算是自定义的类,都可以将其当成一种类型。类也可以看成一种类型。
2、is a 关系(继承)
简单说:就是继承关系。
如果类中不定义__init__,调用父类 super class的__init__
如果类继承父类也需要定义自己的__init__,就需要