Python基礎 異常和物件導向

2021-10-02 13:31:23 字數 3202 閱讀 9603

期末筆記後期整理,如有問題,請多多指教。

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.更易擴充套件 物件導向的劣...