Python魔法函數簡單介紹學習筆記

魔法函數

what is magic function?

python中定義的以雙下劃線開頭和結尾,可以增強對象的特性

Python數據模型以及數據模型對Python的影響

自行百度瞭解

Python中的魔法函數

老師說在後面會在後面章節中貫穿講解
在這裏插入圖片描述

__str__對象字符串格式化

在這裏插入圖片描述

__repr__

一般在開發模式中 使用cmd輸入ipython notebook
通常情況下,直接輸出某個實例化對象,本意往往是想了解該對象的基本信息,例如該對象有哪些屬性,它們的值各是多少等等。但默認情況下,我們得到的信息只會是“類名+object at+內存地址”,對我們瞭解該實例化對象幫助不大。

那麼,有沒有可能自定義輸出實例化對象時的信息呢?答案是肯定,通過重寫類的 __repr__() 方法即可。事實上,當我們輸出某個實例化對象時,其調用的就是該對象的 __repr__() 方法,輸出的是該方法的返回值。

默認情況下,__repr__() 會返回和調用者有關的 “類名+object at+內存地址”信息。當然,我們還可以通過在類中重寫這個方法,從而實現當輸出實例化對象時,輸出我們想要的信息。

len()函數特殊性

當作用於dict、set、list時,會去直接讀取C語言中的數據,會更快,性能更快

補充for循環

在for i in x中首先回去獲得x的迭代器,如果x是一個對象並且有__iter__魔法函數則首先考慮它,如果無則會看__getitem__這個魔法函數而使對象成爲一個可迭代對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章