首页 > 其他 > 详细

__getattr__和__setattr__

时间:2019-10-25 15:47:53      阅读:73      评论:0      收藏:0      [点我收藏+]

getattr 拦截运算(obj.xx),对没有定义的属性名和实例,会用属性名作为字符串调用这个方法

class F(object):
        def __init__(self):
            self.name = 'A'
    
        def __getattr__(self, item):
            if item == 'age':
                return 40
            else:
                raise AttributeError('没有这个属性')
    
    f = F()
    print(f.age)

setattr 拦截 属性的的赋值语句 (obj.xx = xx)


class F(object):

    def __setattr__(self, key, value):
        self.__dict__[key] = value

a = F()
a.name = 'alex'
print(a.name)
print(a.__dict__)

__getattr__和__setattr__

原文:https://www.cnblogs.com/an5456/p/11738291.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!