zoukankan      html  css  js  c++  java
  • item系列方法

    item系列

    __getitem__(self, item)

    通过中括号取值obj[item]触发它的执行,无论item是否存在。

    __setitem__(self, key, value)

    通过中括号赋值obj[key] = value触发它的执行,无论key是否存在。

    __delitem__(self, key)

    通过中括号删除值del obj[key]触发它的执行,无论key是否存在。

    class Dog:
        head = 1
    
        def __getitem__(self, item):
            print('getitem执行了')
    
        def __setitem__(self,key,value):
            print('setitem执行了')
    
        def __delitem__(self, key):
            print('delitem执行了')
    
    demu = Dog()
    demu['tail']
    demu['tail'] = 1
    del demu['tail']
    
    getitem执行了
    setitem执行了
    delitem执行了
    

    实例:定义一个字典,即支持点取值赋值,也支持中括号取值赋值。

    class Mydict:
        def __init__(self,**kwargs):
            self.__dict__.update(kwargs)
    
        def __getitem__(self, item):
            # return getattr(self,item)
            return self.__dict__[item]
    
        def __setitem__(self, key, value):
            # setattr(self,key,value)
            self.__dict__[key] = value
    
    dic = Mydict(k1='v1',k2='v2')
    print(dic['k1'])
    dic['k3'] = 'v3'
    print(dic['k3'])
    print(dic.k3)
    dic.k4 = 'v4'
    print(dic['k4'])
    
    v1
    v3
    v3
    v4
    
  • 相关阅读:
    ES6(二)
    ES6
    bootstrap
    数组对象
    bootstrap
    html5(二)
    css3转换、动画、布局
    整理的一些兼容写法
    css渐变、背景、过渡、分页
    css3(一)
  • 原文地址:https://www.cnblogs.com/ChiRou/p/14210003.html
Copyright © 2011-2022 走看看