zoukankan      html  css  js  c++  java
  • Python进阶-----类的内置item属性方法

    类的内置item相关方法只有在通过字典key操作才会触发
    而通过点的方式来操作,则触发attr相关方法

    class Foo:
        def __init__(self,name,age):
            self.name = name
            self.age = age
    
        def __getitem__(self, item):
            print('执行getitem')
            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)
    
    f = Foo('Jerry',18)
    
    #获取属性,通过字典key的形式,其实是操作底层__dict__[key]来获取相应的值
    print(f['name'])   #执行getitem    Jerry
    
    #设置(修改)属性,也是通过字典key的形式,其实是操作底层__dict__[key] = value 来设置(修改)相应的值
    f['name'] = 'Meanwey'   #执行setitem
    print(f.__dict__)       #{'name': 'Meanwey', 'age': 18}
    
    #删除属性,通过字典key的形式,其实是操作底层__dict__.pop(key)来删除相应的属性和值
    del f['age']            #执行delitem
    print(f.__dict__)       #{'name': 'Meanwey'}
  • 相关阅读:
    Codeforces 50A
    Codeforces 50A
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
    Python Ethical Hacking
  • 原文地址:https://www.cnblogs.com/Meanwey/p/9788829.html
Copyright © 2011-2022 走看看