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