1.单例
··定义:类创建的对象,在系统中只有唯一一个实例
实现步骤:
1.定义一个类属性,初始值是None, 用于记录单例对象的引用
2.重写__new__
方法
3.如果类属性is None
,调用父类方法分配空间,并在类属性中记录结果
4.返回类属性中记录的对象引用
例:
·
注:单例模式中,即便只有一个对象,但是每次创建时还是会调用初始化(
__init__
)方法
·
拓展:如何每次创建对象自始至终只执行一次初始化方法?
实现方法:
2.捕获异常
定义:通俗的说,为了使得程序完整的运行,避免出现一些可以预想到的错误,对可能会出现错误的代码段进行异常捕获。
注:“可能会出现错误的代码段” 不是指代码本身的错误,而是在执行时可能会发生的错误
实现方法:
try:
可能会出现错误的代码段
except:
出现的错误处理
·
2.1根据错误类型捕获异常
实现方法:
try:
# 可能会出现异常的代码段
except 错误类型1:
# 针对出现错误类型1的处理
except (错误类型2, 错误类型3):
# 针对出现错误类型2,3的处理
except Exception as 变量名(随意):
# 针对出现未知错误类型的处理,可通过输出该变量得到错误原因
print(变量名)
else:
# 没有捕获到异常才会执行的代码
finally:
# 无论是否捕获到异常,都会执行的代码
注:当python解释器抛出异常时,最后一行错误提示的第一个单词,就是错误类型
例:
·
2.2关于捕获异常的传递性
例:
利用捕获异常的传递性的好处:
不必在每个函数中都加上异常捕获方法,可直接在主程序中进行异常捕获
如:
·
2.3主动抛出异常
● Python中提供了一个Exception
异常类
●在开发时,如果满足特定业务需求时,需要抛出异常,可以:
1.创建一个Exception
的对象
2.使用| raise
关键字抛出异常对象
例: