Python魔法方法、異常處理

魔法屬性,方法:已經(jīng)具備了一定功能的固有的屬性和方法。

  1. 常見的魔法屬性和方法

輸出:

str():輸出當(dāng)前對象在內(nèi)存中的地址

image.png

程序輸出:

image.png

repr():直接操作變量時~獲取變量數(shù)據(jù)的定義

比較:

gt():grant than 大于

lt():less than 小于

ge():grant equals 大于或者等于

le():less or equals 小于或者等于

ne():not equals 不等于

eq():equals 等于

運算

add():加法

sub():減法

mul():乘法

truediv():除法

floordiv():整除

對象在集合中的剔重:

在對象剔重上,因為對象不是基礎(chǔ)類型,不能直接操作,需要利用哈希算法將類型轉(zhuǎn)換,然后利用比較函數(shù)進(jìn)行比較。

hash()哈希算法 eq()比較函數(shù)(等于) 兩者需要同時使用

類型中的方法/屬性:

成員屬性:聲明在方法中,通過self聲明的,是每個對象特有的。

成員變量:每個實例化對象自身特有的

實例屬性:聲明在方法中,通過self聲明的。

實例變量:實例變量就是新建對象中的變量,不再與原來的類型共享該名稱的變量

類屬性:聲明在類型的內(nèi)部,方法的外部的屬性

類變量:在整個類型中共享的變量

類型中的方法:

成員方法/實例方法:就是屬于類型的普通方法

def 方法名稱(self,..):

代碼塊

成員方法:必須通過對象對方法進(jìn)行調(diào)用。

類方法:屬于當(dāng)前類型的方法,可以通過類型、該類型的對象進(jìn)行調(diào)用

@classmethod

def 類方法(cls,..):

類方法:使用較少-特殊需求-在方法中要對當(dāng)前類型進(jìn)行操作考慮使用

靜態(tài)方法:類型中的函數(shù)

可以被所有的對象、包括類型名稱進(jìn)行調(diào)用(參數(shù)的聲明和普通函數(shù)一樣)

@staticmethod

def 靜態(tài)方法(..):

  1. Python中系統(tǒng)本身設(shè)定的異常處理

編程中錯誤的分類:

語法錯誤:在編程時代碼寫錯導(dǎo)致解釋執(zhí)行時發(fā)生錯誤。

運行錯誤:運行過程中,由于不同數(shù)據(jù)的處理出現(xiàn)的錯誤 異常

運行結(jié)果錯誤:程序本身沒有錯誤,但是運行結(jié)果不是期望的結(jié)果

在python異常處理中的關(guān)鍵字:try、except、else、finally、raise

異常處理語法格式:

try:

可能出現(xiàn)錯誤的代碼塊

except:

出現(xiàn)錯誤要執(zhí)行的代碼塊

else:

程序沒有錯誤運行的代碼塊

finally:

無論錯誤是否出現(xiàn),都需要執(zhí)行的代碼塊

多異常處理:

try:

可能出現(xiàn)錯誤的代碼塊

except:

出現(xiàn)錯誤要執(zhí)行的代碼塊

特點:直接處理所有的一場,所有異常共同處理

try:

可能出現(xiàn)錯誤的代碼塊

except (錯誤類型,可以是多個) as e:

出現(xiàn)相應(yīng)的錯誤所需要執(zhí)行的代碼塊

特點:指定多個異常進(jìn)行處理,明確具體的錯誤

try:

可能出現(xiàn)錯誤的代碼塊

except 錯誤類型1 as e:

出現(xiàn)錯誤類型1要執(zhí)行的代碼

except 錯誤類型2 as e:

出現(xiàn)錯誤類型2要執(zhí)行的代碼

特點:多個異常獨立處理

4. 自定義異常處理

自定義異常類

class DoError(Exception):

def init(self,x,y):

super(DoError,self).init(x,y)

self.x = x

self.y = y

使用自定義異常

#自定義異常類
class DoError(Exception):
   def __init__(self,x,y):

       self.x = x
       self.y = y
#使用自定義異常
try:
    x = 3
    y = 2
    if x % y > 0:
       print(x/y)
       raise DoError(x,y)
except DoError as e:
   print(e)
else:
   print("")

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容