Python概念-Item系列(林海峰教的)


這個Item系列是egon老師自創的,個人還是可以接受這種文化底蘊的,所以直接拿來用,也是毫無違和感的

所謂Attr系列,其實是__setattr__,__delattr__,__getattr__ 三個函數,從名字中可以看出來這是一套設置,刪除,查詢的函數,那我們來一個一個的看:

__setitem__(self,key,value):當對類中的某個屬性進行"賦值"時觸發的函數(只有使用字典賦值的方式時才會觸發此方法的執行)

與Attr系列的區分:__setattr__(self):是在對象打點兒的方式賦值時,才會觸發的方法

代碼示例:

class Foo:
    def __setitem__(self, key, value):
        print(key,"獲得",value)
f = Foo()
f["name"] = "egon"

__delitem__(self,key):當類中的某個屬性被刪除時,觸發此方法(只有使用del字典方式刪除屬性時,才會觸發此方法)

與Attr系列的區分:__delattr__(self):使用del類打點兒屬性的方式刪除屬性,才會觸發此方法

代碼示例:

1 class Foo:
2     name = "egon"
3     def __delitem__(self, key):
4         print(key,"已被刪除")
5 f = Foo()
6 del f["name"]

__getitem__(self,item):當調用類中的屬性或方法時觸發此方法的執行(只在使用類[key]字典的方式調用時,才會觸發此方法)

與Attr系列的區分:其實這里已經很明顯了,__getattr__(self):是類打點兒調用且命名空間沒有發現名字的情況下,觸發此方法

代碼示例:

1 class Foo:
2     name = "egon"
3     def __getitem__(self, item):
4         print(item,"已被調用")
5 f = Foo()
6 f["name"]

以上就是Item系列的小總結,總覺得egon說什么都是對的

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM