用于类的函数:
issubclass(类,类 或 类元组):判断一个类是否继承自其他的类,如果此 类 是 '类' 或 '类元组' 中的一个派生子类则返回 True ,否则返回 False
查看python内建类的方法:help(__builtins__)
封装 enclosure
封装是指隐藏类的实现细节,让使用者不用关心这些细节
封装的目的是让使用者尽可能少的使用实例变量(属性)进行操作
私有属性:
python类中,以双下划线“__”开头,不以双下划线结尾的标识符为私有成员,在类的外部无法直接访问
多态 polymorphic
字面意思:“多种状态”
多态是指在继承/派生关系的类中,调用基类对象的方法,实际能调用子类的覆盖版本方法的现象叫多态
说明:
多态调用的方法与对象相关,不与类型相关
python的全部对象都只有“运行时状态(动态)”,没有“C++/Java”里的“编译时状态(静态)”
面向对象的编程语言的特征:
封装,继承,多态
如:C++ / Java / Python / Swift / C#
多继承 multiple inheritance
多继承是指一个子类继承自两个或两个以上的父类
语法:
class 类名(父类名1, 父类名2....):
语句块
说明:
1.一个子类同时继承自多个父类,父类中的方法可以同时被继承下来
2.如果两个父类中有同名的方法,而在子类中又没有覆盖此方法时,调用结果难以确定
多继承的问题(缺陷):
标识符(名字空间冲突的问题),要谨慎使用多继承
python2中采用的是深度优先,python3采用的是广度优先
继承的 MRO(Method Resolution Order)问题
类内的 __mro__ 属性用来记录继承方法的查找顺序
子类调用父类初始化最好的方法:
class Mylist(list):
def __init__(self, *args):
super().__init__(*args)
发表评论