python 常见内置函数setattrgetattrdelattrsetitemgetitemdelitem

Posted 大蟒在线

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 常见内置函数setattrgetattrdelattrsetitemgetitemdelitem相关的知识,希望对你有一定的参考价值。

常见内置函数

  • 内置函数:在类的内部,特定时机自动触发的函数

  • 示例1:setattr、getattr、delattr

  • class Person:
        # def __init__(self, name):
        #     self.name = name
    ?
        def __setattr__(self, key, value):
            # 当设置对象成员属性的时,系统会自动调用
            print(key, value)
            self.__dict__[key] = value
    ?
        def __getattr__(self, item):
            # 当访问不存在的对象属性时,系统会自动调用
            if item == age:
                return 123
            else:
                return default
    ?
        def __delattr__(self, item):
            # 当销毁对象的成员属性时,系统会自动调用
            print(del, item)
    xiaoming = Person()

    每个对象都有一个成员属性:dict 

    用于存放对象的属性,包括动态添加的

print(xiaoming.dict)
xiaoming.name = 小明
print(xiaoming.name)
print(xiaoming.dict)
xiaoming.age = 18
print(xiaoming.age) print(xiaoming.hello)

del xiaoming.age

示例2:setitem、getitem、delitem

  • 当对对象按照字典方式操作时,会自动触发相关方法

  • 示例:

    
    
    class Person:
        # 当对对象按照字典设置键值对时,会自动触发该方法
        def __setitem__(self, key, value):
            # print(key, value)
            self.__dict__[key] = value
    ?
        # 当对对象按照字典操作根据键获取值时,会自动触发该方法
        def __getitem__(self, item):
            # print(item)
            return self.__dict__[item]
    ?
        # 当做字典操作,删除键值对时,自动触发该方法
        def __delitem__(self, key):
            # print(key)
            del self.__dict__[key]
            
    p = Person()
    p[name] = xiaoming
    print(p[name])
    ?
    # 通过字典方式添加的键值对,可以通过属性的方式获取
    print(p.name)
    print(p.dict)
    del p[name]

以上是关于python 常见内置函数setattrgetattrdelattrsetitemgetitemdelitem的主要内容,如果未能解决你的问题,请参考以下文章

[ Python - 2 ] 常见内置函数

Python_常见内置函数

[Python]学习基础篇:常见的Python内置函数及模块

内置函数 匿名函数 sorted map filter等常见函数

python的35个常见内置函数(BIF)

day17 python 常见的内置函数