大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第73篇文章,第三階段的課程:Python進階知識:類與對象(四);類與對象的名稱空間,對象中屬性查找的順序。
一、類的名稱空間
首先,類中存放的全部數據、方法是所有對象共有的,所有的對象都能使用;
其次,在Python中定義類的時候,Python解釋器就會執行一遍類中代碼;所以類的名稱空間是類被定義的時候就産生的;
定義類的時候産生的名稱空間包括:類體代碼的内存地址,類名的内存地址,類名的内存地址會指向類體代碼的内存地址;
二、對象的名稱空間
對象的名稱空間是在對象初次實例化(即創建對象的時候)就建立了;對象實例化的時候會産生:對象名的内存地址,對象體代碼的内存地址,對象名會指向類體代碼與對象本身的代碼;
三、對象中屬性查找的順序
與其他編程語言不一樣的地方在于,Python是支持繼承并且是支持多繼承的;
所以,在對象中查找屬性的順序是:
1、對象本身去查找,(若對象中沒有,則2);
2、類中去查找 ,(若類中沒有,則3);
3、去這個類的父類中去查找 ,(若父類中沒有,則4);
4、去這個父類中的基類去查找,(若基類中也沒有,則返回報錯信息。
由于在Python中類是支持多繼承的,所以引發多繼承的“菱形問題”(即要先去哪一個父類中獲取屬性);這個我們會在接下來的文章中詳細說明。
以上是本期内容,如果有表達不對的内容,歡迎您的留言、斧正,我們一起天天向上。
感謝您的閱讀,您的三連【關注、點贊、收藏】就是對我最大的支持,謝謝!
本文由楊數Tos原創,歡迎關注,帶你一起長知識。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!