异常 模块 单例
1.异常 处理
在程序执行过程中 ,发生,影响程序的正常运行
在python中 异常就是一个错误
try .... except....捕获异常
try 用来检测try中语句块中是否有错误 , 有 错误,让except 捕捉异常并处理
try 可以和except 或者 finally 语句一起执行 也可以一起执行
作用: 有效的避免了程序报错退出,增强了代码的稳定性
try
代码...
except Exception # Ecxeption是所有异常的基类 可以捕获所有类型的异常
except Exception # Ecxeption是所有异常的基类 可以捕获所有类型的异常
except 类名 as 错误类型
异常处理
常见 报错 : FileNotFountError 文件不存在 NameError: 未声明/初始化错误 Exception: 常规错误基类
else 在异常中的作用
try :
尝试执行的代码..
except:
如果有异常,交给except处理异常
else:
如果没有异常,执行else中的语句
finally :
try:
尝试执行的代码
....
finally
无论是否发生异常都执行finally
异常传递的概念
异常处理 函数嵌套
自定义异常的使用方法
raise: 使用该语句 可以自动出发异常([抛出异常)
python模块
python 模块 是一个python文件,任何以.py结尾的,都可以作为模块导入 模块内容可以是全局变量,函数,类和执行代码
引入模块的不同方式
import 文件名 ---- 模块
局部导入
from 文件名 import 名字 函数名,类名,变量名
名字 可以是变量名 函数名,类名
文件名 导入的作为模块的那个.py文件
from 文件名 import *
把一个模块所有的内容都导入当前的空间
__all__=['',''] 控制模块 导入的内容
__name __
表示模块的名字的一个系统变量
主动执行文件时 __name__ 是 :__main__
作为模块导入时 __name__ 是: moddle
import sys
sys.path 获得python解释器查询目录
包
在项目中的子文件夹
作用:对同类功能的模块进行目录的整合
在包中的子文件夹必须加包名,即使是同级
import .包名.函数名
__init__.py
python2中没有__init__.py文件就会报错
__new__()
创建对象时自动调用该方法
开发者可以实现new方法来自定义对象的创建过程
是一个静态方法
class Dog:
# __new__ 是静态方法,当创建对象的时候自动调用该方法
def __new__(cls, *args, **kwargs):
new_obj = object.__new__(cls) # 创建一个新的对象 cls 代表当前类对象
return new_obj
wc = Dog()
print(wc)
单例
回收站是单例模式的应用
确保某一个类只会创建出一个实例,称为单例类
模式
好处:降低开发成本,提高开发效率,便于后期维护
单例模式: 某个类 只能创建一个对象,无论使用什么方法,创建出来的对象始终只有一个,即使创建出N个对象,但是所有对象指向的是同一个空间的地址
lass Shopping(object):
__instance = None # 用来标识是否创建多对象
__isinit = False # 记录是否已经进行了初始化
def __new__(cls, *args, **kwargs): # 创建对象的时候自动调用该方法
if cls.__instance is None: # 判断是否创建过对象
cls.__instance= object.__new__(cls)
return cls.__instance
# 初始化一次__init__
def __init__(self):
if Shopping.__isinit ==False:
self.price = 0
Shopping.__isinit=True