说明:获取属性的值。
def getattr(obj, name:str):
'''
获取属性的值
:param obj: 一个对象
:param name: 属性的名字
'''
!subtitle:说明
获取对象属性的值。
首先调用 __getattribute__ 方法,尝试获取对象的 __dict__ 属性字典
未找到该属性时,如果对象实现了 __getattr__ 方法,则会调用该方法
属性不存在时,产生 AttributeError 异常。
__getattribute__是object中定义的方法,默认读取__dict__属性字典。 如果__dict__属性字典中没有指定的属性,则尝试调用__getattr__方法。
重载
__getattr__方法可以自定义查找__dict__属性字典中没有的属性的方式。重载
__getattribute__方法可以自定义所有属性的查找方式。
!subtitle:参数
obj - 要获取属性的对象
name - 要获取的属性名
!subtitle:返回值
属性的值;如果属性不存在,则产生 AttributeError 异常。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p = Person("Alice", 30)
print(p.name)
print(getattr(p, 'name'))