一、setitemclass foo:
def __init__(self, name):
self.name = name
def __getitem__(self, item):
print('getitem執行', self.__dict__[item])
def __setitem__(self, key, value):
print('setitem執行')
self.__dict__[key] = value
def __delitem__(self, key):
print('del obj[key]時,delitem執行')
self.__dict__.pop(key)
def __delattr__(self, item):
print('del obj.key時,delattr執行')
self.__dict__.pop(item)
f1 = foo('sb')
中括號賦值時觸發
二、getitemf1['age'] = 18
f1['age1'] = 19
setitem執行
setitem執行
中括號取值時觸發
三、delitem與delattrf1['age']
getitem執行 18
f1['name'] = 'tank'
setitem執行
delitem:中括號刪除時觸發
delattr:.刪除時觸發
del f1.age1
del f1['age']
del obj.key時,delattr執行
del obj[key]時,delitem執行
print(f1.__dict__)
Python魔法方法 基本的魔法方法
new cls 1.new 是在乙個物件例項化時候所呼叫的第乙個方法 2.他的第乙個引數是這個類,其他的引數是用來直接傳遞給 init 方法 3.new 決定是否使用該 init 方法,因為.new 可以直接呼叫其他類的構造方法,或者返回別的例項物件來作為本類的例項,如果 new 沒有返回例項物件,...
python 魔法方法
魔法方法具有一定的特徵 new cls class capstr str def new cls,string 修改新類裡的new方法,需傳入乙個引數 string string.upper return str.new cls,string 用父類裡的new方法進行返回,直接飯後構造後的物件def...
魔法方法 hash
hash 求hash值的 底層資料結構為hash表,hash 函式 hash表儲存資料的原理 1,計算雜湊值,決定hash表中儲存的位置 2.與當前位置其他物件去比較,如果相等,則不儲存,不等,才儲存進來 eq print hash a class student def init self,id,...