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