day7 异常处理 面向对象
异常处理
try: 可能出错的代码
except Exception as e : 出错执行的代码
else: 没有出错执行的代码
finally:有没有出错,都会走的这里,可以没有这个finally(也可以不写这个)
-----------------------------------------
以连接数据库为例
-----------------------------------
用异常判断价格
--------------------------------------------------
主动抛出异常 raise Exception("不在执行") 后面再有代码也不执行。对一个结果做一个判断,如果不是需要的结果则主动抛出异常,停止程序运行
-----------------------------------------------------------------------------------------------------------------------------
面向对象 (就是类,对于一些复杂的功能用类)切记用类里的变量,调用函数
面向过程:第一步 做什么,第二部做什么么,顺着往下走
面向对象:就是针对一个整体
类:一个模型,一个图纸 对象的集合即为类
对象:根据模型做出来的东西就是实例
实例:实例和对象是一回事
实例化:就是根据模型做具体东西的过程
self:本类对象。实例化出来的是谁,谁就是self
抽象类:一个规范。在规范里通过@abstratmethod修饰方法,在子类里,要实现这个方法。抽象类不能被调用,只能用来继承
继承:私有 方法私有 变量不糊被继承 ,可以继承多个类。
1.如果要在父类方法的基础上重写扩展功能,super().xxxx调用父类,然后把对应的参数,传入即可
super会自动找到父类
实例方法:必须要经过实例化之后才能使用的函数 ,可以调用 类方法,静态方法,实例方法
实例变量:类的属性叫变量,经过实例化之后才能使用的变量叫实例变量
构造函数:类在实例化的时候会自动执行构造函数
类变量:在类里定义的变量
类方法:类定义好之后就可以使用的方法,不需要实例化,类名可以调用,实例也可调用
静态方法:只是写在类里面的一个方法,不能使用类变量,也不能调用其他的方法,相当于一份说明书 @staticmethod def help() : print("") 定义在类里的一个普通函数
属性方法:看起来像变量的一个函数,属性方法不能有参数 @propery def prince(self) : ...... . 调用的时候 不用加括号 xh.prince
析构函数:实例被销毁的时候自动调用的方法
私有变量:只能在类里面调用,出了类就不行
私有方法:只能在类里面调用
-------------------------
1,什么是面向过程,什么是面向对象
2.
1.把类经过实例化变为对象(也叫实例) 2.带self的方法或变量,必须经过实例化后才能使用
3.构造函数(连接数据库),实例化的时候自动执行的构造函数;相反析构函数,实例被销毁执行的函数(析构函数关闭文件或数据库)
4.私有方法 私有变量
5.self 本类对象,也就是mysql,实例化出来是谁,谁就是self
3.
1.类方法、类变量 2. 静态方法 3.属性方法
4.析构函数
-------------------------------------------------------
继承,封装(功能封装起来)
1.继承 一个类继承另外一个类,可以用父类的方法。可以继承n多类。。。Xw.mro() 方法相同时,看先继承那个类。。。如果 子类有和父类一样的方法时,就是 重写
2.私有方法,私有变量不会被继承
3.super() 自动找父类,调用父类的方法,拿父类的变量用
----------------------
super 在父类基础上重写扩展功能
---------------------------------
抽象类 abc 是python内置的一个模块
抽象类,只是用来继承的 如果抽象类里面的函数通过abstractmethod修饰,那就在子类里面必须实现
---------------------------------------------------
反射
封装 一个请求的 类.