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
相關文章
相關標籤/搜索