首页 > 其他 > 详细

__setitem__() __getitem__() __delitem__()

时间:2018-11-06 14:16:26      阅读:216      评论:0      收藏:0      [点我收藏+]
#item系列 和对象使用[]访问值有联系
#obj={‘k‘:‘v‘}
#print(obj)
#print(obj[‘k‘])

class B:
    def __getitem__(self, item):
        #print(‘执行我了‘,item)
        #return ‘bbb‘
        return getattr(self,item)
    #getattr(object, name[,default])
    #getattr() 函数用于返回一个对象属性值。
    #object -- 对象。
    #name -- 字符串,对象属性。
    #default -- 默认返回值,如果不提供该参数,在没有对应属性时,将触发 AttributeError。

    #获取对象object的属性或者方法
    def __setitem__(self, key, value):
        #print(key,value)
        setattr(self,key,value)
        #
    #object -- 对象。
    #name -- 字符串,对象属性。
    #value -- 属性值。
    def __delitem__(self, key):
        print(key)#这样并没有真的删除b[‘k‘]
        delattr(self,key)#delattr 函数用于删除属性。
        #
    #object -- 对象。
    #name -- 必须是对象的属性。


b=B()
b[k]=value#对象[‘键‘]=值 会调用__setitem__()方法
print(b.k)
print(b[k])#对象[‘键‘]调用__getitem__()方法
#现在要删除b[‘k‘]
del b[k]#del 对象[‘键‘]调用__delitem__()方法
print(b[k])

 

__setitem__() __getitem__() __delitem__()

原文:https://www.cnblogs.com/long-holiday/p/9914836.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!