您好,登錄后才能下訂單哦!
魔術(shù)方法:***
實例化:
new :
實例化一個對象 方法很少使用,一般使用return super().))new(cls)基類ibject方法來創(chuàng)建實例并返回。
hash:
返回一個整數(shù),如果定義這個方法該類的實例就可hash。
eq:
對應(yīng)==操作符,判斷2個對象是否相等,返回bool值。
hash方法只是返回一個hash值作為set的key,但是去重,還需要eq來判斷2個對象是否相等。只是hash沖突,不能說明兩個對象是相等的。因此,一般來說提供hash方法是為了作為set或者dict的key,所以去重要同時提供eq方法。
如果一個類不能hash,就把hash設(shè)置為None。
bool:
可視化:
運算符重載:
容器相關(guān)方法:
可調(diào)用對象:
python中一切皆對象,函數(shù)也不例外。
call類中定義一個該方法,實例就可以像函數(shù)一樣被調(diào)用。
上下文管理:
實例化對象時,并不會調(diào)用enter進入with語句塊調(diào)用enter方法,然后執(zhí)行語句塊,最后離開時,調(diào)用exit方法。
enter方法返回值就是上下文中使用的對象,with語法會把它的返回值賦予as字句的變量。
反射:
運行時,區(qū)別于編譯時,指的是程序被加載到內(nèi)存中執(zhí)行的時候。
reflection,指的是運行時獲取類型定義信息。
簡單說,再Python中,能夠通過一個對象,找出其type,class,attribute,method的能力。
具有反射能力的函數(shù)有:type(),isinstance(),callable(),dir(),getattr()
delattr():
可以阻止通過實例刪除屬性的操作,但是通過類依然可以刪除屬性。
getattribute:
除非明確知道用該方法做什么,不然少用。
描述器 Descriptors:
所用魔術(shù)方法:get(),set(),delete()
x= A()時,A已經(jīng)產(chǎn)生了實例,則init已運行。
運行結(jié)果來看,只有類屬性是類的實例才行。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。