语法格式:
class 子类类名(父类1[,父类2,...]):
类体
定义类的时候如果未指定父类,默认父类为object类,理解为object为所有子类的父类
class 类名: # 父类是object
pass
class 类名(继承的父类名): # 类-继承于->父类-继承于->....->object
pass
子类的构造方法"__init__"未重写,自动调用父类的构造方法,反之则不会调用父类的构造方法,如果子类定义了构造方法,要使用父类的构造方法,要使用super关键字。
语法格式:
super(子类名,self).__init__(父类构造方法中除了self之外的参数)
另一种格式:
父类名.__init__(self, 参数)
如果在子类中重写了父类中的方法,但是还想调用父类中的方法,也可以调用super方法。
语法格式:
super.父类中的方法名(参数)
查看对象属性(方法)dir():
class 类名():
pass
s1 = 类名()
print(dir(s1)) # 查看对象s1的属性
查看类的继承层次结构:
类名.mro()
或者:
类名.__mro__
多重继承(为了使类的层次不会太过复杂,尽量避免使用)
class A:
pass
class B:
pass
class C(A,B): # C类继承了A类和B类,拥有了A和B的属性和方法
pass
记个知识点,有啥遗漏或错误的地方,请各位指教。