期末筆記後期整理,如有問題,請多多指教。
1、所有異常類都是exception的子類
2、常見的異常
①nameerror:訪問未宣告的變數
②zerodivisionerror:除數為0
③syntaxerror(編譯時發生)
④indexerror:序列中不存在的索引
⑤keyerror:字典中不存在的鍵訪問值時
⑥filenotfounderror:檔案不存在
⑦attributeerror:嘗試訪問未知物件屬性
3、異常處理
①捕獲簡單異常
try:
#語句塊
except:
#異常處理**(捕獲所有異常)
當try裡面語句出現錯誤時,不再繼續執行try中語句,直接執行except中處理異常的語句。
②捕獲多個異常
try:
#語句塊
except 異常名稱1:
#異常處理**
except 異常名稱2:
#異常處理**
except(異常名1,異常名2):
③捕獲異常的描述資訊:為了區分不同的錯誤資訊,使用as獲取系統反饋的錯誤資訊。
except(zerodivisionerror,valueerror) as result:
print("捕獲到異常:%s"%result)
except exception as result:
print("捕獲到異常:%s"%result)
④沒有捕獲到異常:如果try語句沒有捕獲到任何的錯誤資訊,就不再執行except,而會執行else語句
try:
#...
except:
#...
else:
#...
在沒有except的try語句中使用else語句,會引發語法錯誤。
⑤終止行為:無論是否捕獲到異常,都要執行一些終止行為,如關閉檔案、釋放鎖等,用finally語句處理。
#完整語句格式:
try:
#...
except a:
#...
except:
#...
else:
#...
finally:
#...
4、丟擲異常
①raise語句
raise 異常類 #引發異常時會隱式建立物件
raise 異常類物件 #引發類物件對應異常
raise #重新引發剛剛發生的異常
raise indexerror
index_error=indexerror()
raise index_error
try:
raise indexerror
except:
print("出錯了!")
raise
②指定異常的描述資訊
raise indexerror("...")
③異常引發異常
raise indexerror("...") from exception
1、類的定義
①類名(首字母必須大寫)
②屬性:事物特徵
③方法:事物行為
class 類名:
類的屬性
類的方法
方法和函式的區別:方法必須顯式的宣告乙個self引數,而且位於引數列表的開頭。
2、根據類建立物件
物件名=類名() #p=person()
給物件新增屬性
物件名.新的屬性名=值 #p.age=18
3、構造方法:__init__()
當建立類的例項的時候,系統會自動呼叫構造方法,從而實現對類進行初始化的操作。
def __init__(self):
self.color="red"
'''def __init__(self,color):
self.color=color
'''
4、析構方法:__del__()
當刪除乙個物件來釋放類所占用的資源時,預設呼叫析構方法。(程式結束)
5、self
在方法的定義中,第乙個引數永遠是self,當某個物件呼叫方法時,會把這個物件作為第1個引數傳給self。
6、封裝
①私有屬性:屬性名前加兩個下劃線
②新增供外界呼叫的方法:設定和獲取屬性值
class person:
def __init__(self,name):
self.__name=name
def set_name(self,new_name):
self.__name=new_name
def get_name(self):
return self.__name
7、繼承——class 子類名(父類名):
①若定義類的時候沒有標註出父類,則這個類預設繼承自object的
如:class person(object):與class person:等價
父類的私有屬性和私有方法不會被子類繼承和訪問。
②python語言支援多繼承
如:class 子類(父類1,父類2,...)
子類繼承的多個父類間是平行的關係,子類先繼承的哪個類就會呼叫哪個類的方法。
③重寫父類方法
呼叫父類方法:如super().__init__(leg_count)
8、多型
9、類屬性和例項屬性
class cat(object):
#類屬性
number=0
def __init__(self):
#例項屬性
self.age=1
cat=cat()
cat.number#用物件訪問類屬性
cat.number#用類訪問類屬性(常用)
10、類方法@classmethod和靜態方法@staticmethod 物件和物件導向
物件字面量 1 大括號包圍的部分 2 物件的質麵量就是乙個大括號 a var obj 鍵值對 b key 健 value 值 c key可以加 可以不加 d 健值對之間用 逗號隔開,不是分號 var obj2 console.log obj2.name obj2.fu json json 是資料格式...
物件導向和面向過程
面向過程就是分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現,使用的時候乙個乙個依次呼叫就可以了。物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。例如五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊...
物件導向和面向過程
物件導向和面向過程的區別 面向過程 更加關注整個程式的實現流程 物件導向 更加關注整個程式中有哪些類,每個類有哪些屬性,有哪些行為,它將整個功能劃分為許多小功能,分散到不同的類中,使用時,僅需命令相應的類完成相應的事情 物件導向的優勢 1.更高的容錯率 2.更易閱讀的 3.更易擴充套件 物件導向的劣...