python基础----__setitem__,__getitem,__delitem__

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python基础----__setitem__,__getitem,__delitem__相关的知识,希望对你有一定的参考价值。

class Foo:
    def __init__(self,name):
        self.name=name

    def __getitem__(self, item):
        print(self.__dict__[item])

    def __setitem__(self, key, value):
        self.__dict__[key]=value
    def __delitem__(self, key):
        print(del obj[key]时,我执行)
        self.__dict__.pop(key)
    def __delattr__(self, item):
        print(del obj.key时,我执行)
        self.__dict__.pop(item)

f1=Foo(sb)
f1[age]=18
f1[age1]=19
del f1.age1
del f1[age]
f1[name]=alex
print(f1.__dict__)

 

#把对象操作属性模拟成字典的格式
class Foo:
    def __init__(self,name):
        self.name=name
    def __setattr__(self, key, value):
        print(setattr===>)
    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):
        self.__dict__.pop(key)
        # self.__dict__.pop(key)
    # def __delattr__(self, item):
    #     print(‘del obj.key时,我执行‘)
    #     self.__dict__.pop(item)

f=Foo(egon)
f.name=egonlin
f[name]=egonlinhai
# print(f.name)
# f.name=‘egonlin‘
# f[‘age‘]=18
# print(f.__dict__)
#
# del f[‘age‘] #del f.age
# print(f.__dict__)

# print(f[‘name‘])

 

以上是关于python基础----__setitem__,__getitem,__delitem__的主要内容,如果未能解决你的问题,请参考以下文章

python - __setitem__/__getitem__/__delitem__类的内置方法

python 魔法方法之:__getitem__ __setitem__ __delitem__

Python __setitem__()__getitem__()__delitem__()

python之 __getattr____getattr____getitem____setitem__ 使用

python 的__len__,__getitem__ __setitem__ __delitem__ __contains__

8.python之面相对象part.7(__setitem__,__getitem,__delitem__)