析构方法的概述:当一个对象被删除或者被销毁时,python解释器也会默认调用一个方法,
这个方法为__del()__方法,也称析构方法
析构方法总结:
1.当整个程序脚本执行完毕后会自动调用__del__方法
2.当对象被手动销毁时也会自动调用__del__方法
3.析构函数一般用于资源回收,利用__del__方法销毁对象回收内存等资源
在python中展现面向对象的三大特征:封装、继承、多态
封装:指的是把内容封装到某个地方,便于后面的使用
封装需要:
把内容封装到某个地方
从另外一个地方去调用被封装的内容
对于封装来说 起始就是使用初始化构造方法将内容封装到对象中,然后通过对象直接
或者self来获取被封装的内容
继承:和现实生活当中的继承是一样的:也就是子可以继承父的内容【属性和行为】
(爸爸有的儿子都有,相反,儿子有的爸爸不一定有)
所以对于面向对象的继承来说,起始就是将多个类共有的方法提取到父类中
子类仅需继承父类而不必一一去实现
这样就可以极大的提高效率,减少代码的重复编写,精简代码的层级结构,便于拓展
class 类名(父类):
'''
子类就可以继承父类中公共的属性和方法
'''
pass
__mor__:查询执行顺序,显示类的继承关系(类名.__mor__)
python有多继承,有广度优先和深度优先
类传递总结:类的传递过程中,我们把父类又称为基类,子类又成为派生类,
父类的属性和方法可以一级一级的传递到子类
重写:就是在子类中,有一个和父类相同的方法,在子类中的方法会覆盖掉父类中同名的方法
为什么要重写,父类的方法已经不满足子类的需要,那么子类就可以重写父类或者完善父类的方法
supper():自动找到父类,进而调用方法,假设继承了多个父类,那么会按照顺序逐个去找,然后再调用
多态:顾名思义就是多种状态、形态,
就是同一种行为对于不同的子类【对象】有不同的行为表现。
要想实现多态 必须要有两个前提需要遵守:
1、继承:多态必须发生再父类和子类之间
2、重写:子类重写父类的方法
多态有什么用?
1.增加程序的灵活性
2.增加程序的扩展性
类属性:就是类对象所拥有的属性,它被所有类对象的实例对象所共有,类对象和实例对象都可以访问
实例属性:实例对象所拥有的属性,只能通过实例对象访问
类属性通过类对象去修改,不可以通过实例对象对类属性进行修改,那只是覆盖
类方法:类对象所拥有的方法,用@classmethod来进行修饰,对于类方法,
第一个参数必须是类对象,一般以cls作为第一个参数,类方法可以通过类对象,实例对象调用
静态方法:类对象所拥有的方法,需要用@staticmethod来表示静态方法,静态方法不需要任何参数
第三方库安装命令:pip install 模块名
pip install 包名 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
为什么要使用静态方法呢
优于静态方法主要来存放逻辑性的代码,本身和类以及实例对象没有交互
也就是说,在静态方法中,不会涉及到类中方法和属性的操作
数据资源能够得到有效的充分利用
从方法定义的形式可以看出来
类方法、实例方法、静态方法对比:
1.类方法的第一个参数是类对象 cls 进而去引用类对象的属性和方法 必须用装饰器
@classmethod来进行修饰
2.实例方法的第一个参数必须是self,通过这个self可以去引用类属性或者实例属性,
若存在相同名称实例属性和类属性的话,实例属性的优先级最高
3.静态方法不需要定义额外的参数,若是要引用属性的话,
则可以通过类对象或者是实例对象去引用即可 必须用装饰器 @staticmethod来修饰