继承
oop(面向对象的三大特性):继承、封装、多态
单继承
class p:
... p = 2
...
class C(p):
... pass
dir(C)
['class', 'delattr', 'dict', 'dir', 'doc', 'eq', 'format', 'ge', 'getattribute', 'gt', 'hash', 'init', 'init_subclass', 'le', 'lt', 'module', 'ne', 'new', 'reduce', 'reduce_ex', 'repr', 'setattr', 'sizeof', 'str', 'subclasshook', 'weakref', 'p']
C继承p
C.base
<class 'main.p'>
p.base
<class 'object'>
类的base属性即该类的父类,object是所有类的基类(公共父类)
子类中有与父类同名称的方法时(重写),子类会把父类中同名称的方法覆盖,可以在子类的初始化方法中调用父类的初始化方法(super():获取父类对象)
多继承
子类继承了两个父类
class P1:
... p1 = 1
...
class P2:
... p2 = 2
...
class C(P1,P2):
... pass
...
C.p1
1
C.p2
2
C.mro
(<class 'main.C'>, <class 'main.P1'>, <class 'main.P2'>, <class 'object'>)
网友评论