1. getattr魔法函数
getattr魔法函数就是在查找不到属性的时候调用
代码示例
class Person(object):
def __init__(self, age, name, info={}):
self._age = age
self.name = name
self.info = info
def __getattr__(self, item):
# 参数item就是访问了但不存在的属性名称
print(item)
return self.info[item]
if __name__ == '__main__':
p = Person(20, '小明', {'data': '123'})
print(p.data)
运行结果
data
123
2. getattribute魔法函数
getattribute魔法函数就是只要访问类属性无论属性存在还是不存在都会先调用该方法
代码实例
class Person(object):
def __init__(self, age, name, info={}):
self._age = age
self.name = name
self.info = info
def __getattribute__(self, item):
return '属性'
if __name__ == '__main__':
p = Person(20, '小明', {'data': '123'})
print(p.data)
print(p.name)
运行结果
属性
属性
网友评论