Python概念 Item系列

2021-09-27 08:14:19 字數 1173 閱讀 4430

所謂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 = "wdb"

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 = "wdb"

3 def __getitem__(self, item):

4 print(item,"已被呼叫")

5 f = foo()

6 f["name"]

Python概念 Item系列 林海峰教的

這個item系列是egon老師自創的,個人還是可以接受這種文化底蘊的,所以直接拿來用,也是毫無違和感的 所謂attr系列,其實是 setattr delattr getattr 三個函式,從名字中可以看出來這是一套設定,刪除,查詢的函式,那我們來乙個乙個的看 setitem self,key,val...

python物件導向 item系列

具體用法 class foo def getitem self,item print get return self.dict item def setitem self,key,value print set self.dict key value 等同於setattr self,key,valu...

item系列方法

通過中括號取值obj item 觸發它的執行,無論item是否存在。通過中括號賦值obj key value觸發它的執行,無論key是否存在。通過中括號刪除值del obj key 觸發它的執行,無論key是否存在。class dog head 1 def getitem self,item pri...