一、 面向对象三大特征之封装
面向对象的程序设计中,某个类把所需要的数据(也可以说是类的属性)和对数据的操作(也可以说是类的行为)全部都封装在类中,分别称为类的成员变量和方法(或成员函数)。这种把成员变量和成员函数封装在一起的编程特性称为封装。
1、公有成员变量和私有成员变量:Python中,以两个下划线‘__’开头的变量都是私有成员变量,而其余的变量都属于公有成员变量。私有的成员变量只能在类的内部访问,而共有的公有的成员变量可以在类的外部进行访问。
2、公有方法和私有方法:公有的成员方法和私有的成员方法也是通过名字来区分的,双下划线‘__’开头的方法是私有成员方法。类的私有方法只能通过对象名(在类内部也就是self)在类的内部进行访问。而公有方法可以在类的外部通过对象名进行访问。
3、创建对象后,Python解释器默认调用__init__()方法。当删除一个对象时,Python解释器也会默认调用一个方法,这个方法为__del__()方法。
def __del__(self):
(1)python解释器执行完整个代码之后会默认最后调用对象的__del__()
(2)如果有多个对象,有几个对象,python解释器执行完毕的时候就是调用几遍__del__()
(3)如果手动删除时(del)删除完成就会执行__del__(),当使用del 把内存的所有应用删除,立刻调用__del__方法del xxx 不会主动调用__del__方法,只有引用计数==0时,__del__()才会被执行,并且定义了__del_()的实例无法被Python的循环垃圾收集器收集,所以尽量不要自定义__del__()。一般情况下,__del__() 不会破坏垃圾处理器。
二、面向对象三大特征之继承
子类在继承的时候,在定义类时,小括号()中为父类的名字父类的属性、方法,会被继承给子类私有属性(私有类属性)和私有方法不被继承。私有的属性,不能通过对象直接访问,但是可以通过方法访问私有的方法,不能通过对象直接访问私有的属性、方法,不会被子类继承,也不能被访问Python中是可以多继承的父类中的方法、属性,子类会继承.类名.__mro__方法的作用打印多重继承的继承方法顺序。
三、面向对象三大特征--多态
所谓多态:定义时的类型和运行时的类型不一样,此时就成为多态。多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承)。
原文:https://www.cnblogs.com/zhaobing37/p/10724000.html