魔法屬性,方法:已經(jīng)具備了一定功能的固有的屬性和方法。
- 常見的魔法屬性和方法
輸出:
str():輸出當(dāng)前對象在內(nèi)存中的地址

程序輸出:

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)方法(..):
- 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("")