day12 异常 模块 单例

1.异常 处理
    在程序执行过程当中 ,发生,影响程序的正常运行
    在python中 异常就是一个错误
   try  ....  except....捕获异常
    try  用来检测try中语句块中是否有错误  , 有 错误,让except 捕捉异常并处理
    try 能够和except 或者 finally 语句一块儿执行  也能够一块儿执行
  做用: 有效的避免了程序报错退出,加强了代码的稳定性
 
       try
            代码...
       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
相关文章
相关标签/搜索