码迷,mamicode.com
首页 > 编程语言 > 详细

python学习之__getitem__,__setitem__,__delitem__

时间:2020-04-25 11:08:02      阅读:238      评论:0      收藏:0      [点我收藏+]

标签:def   --   括号   学习   ===   value   foo   ict   self   

__getitem__(self,item)
__setitem__(self,key,value)
__delitem__(self,key)

class Foo:
def __getitem__(self, item):
print(‘getitem‘,item)
return self.__dict__[item]

def __setitem__(self, key, value):
print(‘setitem‘)
self.__dict__[key]=value

def __delitem__(self, key):
print(‘delitem‘)
self.__dict__.pop(key)

f1=Foo()
print(f1.__dict__)
# f1.name=‘egon‘ #---->setattr-------->f1.__dict__[‘name‘]=‘egon‘
f1[‘name‘]=‘egon‘#--->setitem--------->f1.__dict__[‘name‘]=‘egon‘
f1[‘age‘]=18

print(‘===>‘,f1.__dict__)

# del f1.name
# print(f1.__dict__)
#
# print(f1.age)
del f1[‘name‘]
print(f1.__dict__)

print(f1[‘age‘])

通过字典形式操作属性值(获取,设置,删除)触发以上三个方法。
区别:"."点的形式操作跟attr相关,"[]"中括号形式操作跟item相关

python学习之__getitem__,__setitem__,__delitem__

标签:def   --   括号   学习   ===   value   foo   ict   self   

原文地址:https://www.cnblogs.com/jinpingzhao/p/12771709.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!