python小總結3(異常、單例設計模式)
阿新 • • 發佈:2018-12-01
一、異常
ValueError:值錯誤,傳入了一個不期望的值
ImportError:無法匯入模組或者包:基本上路徑問題
IndexError:訪問了不在範圍內的索引
KeyError:試圖訪問字典中不存在的鍵
NameError:使用了還沒被賦值的變數
TypeError:傳入的資料型別和要求不符合
UnboundLocalError:試圖訪問一個還未被設定的區域性變數:基本上是存在一個和區域性變數重名的全域性變數,使用global宣告
SyntaxError:Python非法程式碼,程式碼無法編譯
二、
裝飾器:作用於一個函式,也可以作用域一個類
def sigleton(cls):
instance = {}
#getInstance/defaultxxx/ currentxxx
def getInstance(*args, **kwargs):
#思路1:可以類似於new,通過是否為NOne
#思路2:將cls作為key,cls對應的例項作為value儲存到字典中
if cls not in instance:
instance[cls] = cls(*args, **kwargs) #dict[key] = value
return instance[cls]
return getInstance
@sigleton
class Test(object):
pass
t1 = Test()
t2 = Test()
print(id(t1) == id(t2))
print(t1 is t2)
這些事我寫下來加強記憶的,希望我自己每次看到這句話都可以在心裡默記一句,“加油,你還差的遠呢”