码迷,mamicode.com
首页 > 编程语言 > 详细

python 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem

时间:2018-03-15 13:23:01      阅读:292      评论:0      收藏:0      [点我收藏+]

标签:通过   item   getattr   log   hello   根据   nbsp   成员   键值   

常见内置函数

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

  • 示例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 常见内置函数setattr、getattr、delattr、setitem、getitem、delitem

标签:通过   item   getattr   log   hello   根据   nbsp   成员   键值   

原文地址:https://www.cnblogs.com/kiki5881/p/8572636.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!