# Python 類的高級特性python
● 靜態成員編碼
1 # -*- coding: UTF-8 -*- 2 3 class UserInfo(object): 4 #靜態成員 5 company = 'I Love PoEdu' 6 print(UserInfo.company)
1 # -*- coding: UTF-8 -*- 2 3 class UserInfo(object): 4 #靜態成員 5 company = 'I Love PoEdu' 6 print(UserInfo.company) 7 user1 = UserInfo() 8 user2 = UserInfo() 9 #Python 對靜態的變量 控制沒有那麼嚴格 10 user1.company = "PoEdu" 11 print("user1:",user1.company) 12 print("user2:",user2.company) 13 14 user2.company = "PoEdu" 15 print("user1:",user1.company) 16 print("user2:",user2.company)
通用異常類型表spa
異常 | 描述 |
---|---|
BaseException | 全部異常的基類 |
SystemExit | 解釋器請求退出 |
KeyboardInterrupt | 用戶中斷執行(一般是輸入^C) |
Exception | 常規錯誤的基類 |
StopIteration | 迭代器沒有更多的值 |
GeneratorExit | 生成器(generator)發生異常來通知退出 |
StandardError | 全部的內建標準異常的基類 |
ArithmeticError | 全部數值計算錯誤的基類 |
FloatingPointError | 浮點計算錯誤 |
OverflowError | 數值運算超出最大限制 |
ZeroDivisionError | 除(或取模)零 (全部數據類型) |
AssertionError | 斷言語句失敗 |
AttributeError | 對象沒有這個屬性 |
EOFError | 沒有內建輸入,到達EOF 標記 |
EnvironmentError | 操做系統錯誤的基類 |
IOError | 輸入/輸出操做失敗 |
OSError | 操做系統錯誤 |
WindowsError | 系統調用失敗 |
ImportError | 導入模塊/對象失敗 |
LookupError | 無效數據查詢的基類 |
IndexError | 序列中沒有此索引(index) |
KeyError | 映射中沒有這個鍵 |
MemoryError | 內存溢出錯誤(對於Python 解釋器不是致命的) |
NameError | 未聲明/初始化對象 (沒有屬性) |
UnboundLocalError | 訪問未初始化的本地變量 |
ReferenceError | 弱引用(Weak reference)試圖訪問已經垃圾回收了的對象 |
RuntimeError | 通常的運行時錯誤 |
NotImplementedError | 還沒有實現的方法 |
SyntaxError | Python 語法錯誤 |
IndentationError | 縮進錯誤 |
TabError | Tab 和空格混用 |
SystemError | 通常的解釋器系統錯誤 |
TypeError | 對類型無效的操做 |
ValueError | 傳入無效的參數 |
UnicodeError | Unicode 相關的錯誤 |
UnicodeDecodeError | Unicode 解碼時的錯誤 |
UnicodeEncodeError | Unicode 編碼時錯誤 |
UnicodeTranslateError | Unicode 轉換時錯誤 |
Warning | 警告的基類 |
DeprecationWarning | 關於被棄用的特徵的警告 |
FutureWarning | 關於構造未來語義會有改變的警告 |
OverflowWarning | 舊的關於自動提高爲長整型(long)的警告 |
PendingDeprecationWarning | 關於特性將會被廢棄的警告 |
RuntimeWarning | 可疑的運行時行爲(runtime behavior)的警告 |
SyntaxWarning | 可疑的語法的警告 |
UserWarning | 用戶代碼生成的警告 |
異常便是一個事件,該事件會在程序執行過程當中發生,影響了程序的正常執行。
通常狀況下,在Python沒法正常處理程序時就會發生一個異常。
異常是Python對象,表示一個錯誤。
當Python腳本發生異常時咱們須要捕獲處理它,不然程序會終止執行。操作系統
● 1.默認異常處理code
1 # -*- coding: UTF-8 -*- 2 s = 'I Love PoEdu !' 3 print (s[100]) 4 print ('continue')
若是沒有對異常進行任何預防,程序執行的過程當中發生異常,
就會中斷程序,調用python默認的異常處理器,並在終端輸出異常信息。
這種狀況下,第3行代碼不會執行。對象
● 2.try…exceptblog
1 # -*- coding: UTF-8 -*- 2 s = ('I Love PoEdu !') 3 try: 4 print(s[100]) 5 except IndexError: 6 print('錯誤提示信息...') 7 print('程序繼續執行!')
程序執行到try語句,try沒有發生異常執行 try內語句,若是發生有異常,執行except內代碼,程序繼續往下執行索引
● 3.try…finally事件
1 s = ('I Love PoEdu !') 2 try: 3 print(s) 4 finally: 5 print('錯誤提示信息...') 6 print('程序繼續執行!')
finally語句,不管異常發生與否,finally中的語句都要執行。
可是,因爲沒有except處理器,finally執行完畢後程序便中斷。
這種狀況下,倒第2個print會執行,到第1個不會執行。若是try
語句中沒有異常,三個print都會執行。內存
● 4.assert
1 # -*- coding: UTF-8 -*- 2 s = 'I Love PoEdu!' 3 assert(s[100],'錯誤提示信息...') 4 print('程序繼續執行!')
這個語句,先判斷assert後面緊跟的語句是True仍是False, 若是是True則繼續執行print,若是是False則中斷程序,調用 默認的異常處理器,同時輸出assert語句逗號後面的提示信息。 本例狀況下,程序中斷,提示error,後面的print不執行。