面向对象-day03总结
1.new()方法(了解)
概念:在类中默认有个__new__方法(object上的),该方法用于开辟对象的内存空间
作用:开辟对象的内存空间,默认每次新建对象自动调用 __new__ 方法从而开辟对象空间
调用时机:__new__方法先调用开辟内存,再调用__init__初始化
例:class 类名(object):
# 重写__new__方法, 实现自己定义的创建对象的方式
def __new__(cls,*args,**kwargs):
return super().__new__(cls)
2.单例模式(了解)
概念: 一个类有且只能创建一个对象空间, 目的是为了节约内存资源.例如:回收站
如何实现单例模式
class Singleton(object):
# 类属性
__instance = None
__isinit = False # 是否初始化
# 重写__new__方法
def __new__(cls,*args,**kwargs):
if cls.__instance is None:
# 创建对象空间
cls.__instance = super().__new__(cls)
# 无论如何都返回对象空间
return cls.__instance
def __init__(self,name):
if Singleton.__isinit is False: # 没有初始化
# 就进行初始化
self.name = name
# 改变条件
Singleton.__isinit = True
3.异常(掌握)
1.概念:python中的错误就是异常
2.异常是分类型的:类 class,异常由多个类组成
我们建议捕获的都是 Exception 或者其子类型的错误
3.异常一旦抛出,终止代码的继续执行
try中的代码块,如果出现异常也会终止执行
4.捕获异常的目的是为了让代码块即使抛出异常仍然能继续向下执行
5.捕获异常的完整语法
try:
#可能出现异常的代码块
except 异常类名 as e:
#捕获指定类型的异常
except (异常类名1,异常类名2) as e:
#捕获多种类型的异常
except Exception as e:
#捕获所有的代码类型的异常
else:
#没有异常执行的代码块
finally:
#无论如何都执行的代码块
6.手动抛出异常
a.raise Exception("错误的提示信息")
b.在 except 中使用 raise 将异常继续向外抛
4.模块和包(重要)
1.模块:一个py文件就是一个模块
2.包:一个文件夹,标准需要在文件夹中创建一个__init__.py文件,这个文件夹就是一个包
3.模块的使用
导入模块:
import 模块名 as 别名 #导入整个模块
from 模块名 import 函数,类,变量 #指定导入
使用技巧:import 后面接什么,就用什么
4.模块中的测试代码的标准书写位置
#定义代码
if __name__ =="__main__":
#执行代码