Python 神秘的魔法方法(續),So Easy!

  • 繼續上篇,本篇我們將繼續學習python的魔法方法。

一、基本的序列和映射規則

  • 序列和映射是對象的集合,為了實現它們的基本規則,如果對象是不可變的那麼使用_len_(self)、_getitem_(self,key)兩個魔方方法,如果對象是可變的,那麼使用_len_(self)、_getitem_(self,key)、_setitem_(self,key,value)、_delitem_(self,key)
    四個魔法方法

  • _len_(self):返回集合中所含項目的數量。

  • 1、對於序列來說是元素的個數

    2、對於映射來說是key-value對的數量

  • 3、如果返回0且沒有實現重寫該行為為_nonzero_就會被當作一個布爾變數中的假值處理

    Advertisements

  • _getitem_(self,key):返回與所給鍵對應的值。

    1、對於序列來說應該是0~n-1的整數或者負數

    2、對於映射來說可以使用任何種類的鍵

  • _setitem_(self,key,value):按一定的方式存儲和key相關的值,該值可以使用_getitem_(self,key)獲取。

  • 1、只能為可以修改的對象定義該方法

  • _delitem_(self,key):在對一部分對象使用del語句時調用該方法,同時必須刪除和元素相關的鍵

    1、為可修改對象定義。

  • 我們來定義一個

  • 調用代碼如下:

  • 結果輸出如下:

  • 從輸出可以看到,取值和設置值都調用了相應的魔法方法,因為我們沒有實現_del_,所以調用del時報錯了。

  • 我們也沒有實現_len_因為它是無限長的。

    Advertisements

  • 魔法名稱的用途有很多,我們只學習了常用的一小部分,大部分特殊的方法都是為高級的用法準備的,感興趣的可以參考Python 參考手冊中相關內容繼續深入學習,也可以給我留言共同討論學習


  • 小夥伴們有什麼好的建議都可以給我留言哦!

  • 如果看到了這裡,說明你已經看完了,感謝你的支持

  • 喜歡就點一下哦,不喜歡可以留言指出不足哦!謝謝

Advertisements

你可能會喜歡