#Python 的内置函数 getattr
说明:获取属性的值。
#函数说明
def getattr(obj, name:str):
'''
获取属性的值
:param obj: 一个对象
:param name: 属性的名字
'''
说明
获取对象属性的值。
- 首先调用
__getattribute__
方法,尝试获取对象的__dict__
属性字典 - 未找到该属性时,如果对象实现了
__getattr__
方法,则会调用该方法
属性不存在时,产生 AttributeError
异常。
__getattribute__
是object
中定义的方法,默认读取__dict__
属性字典。 如果__dict__
属性字典中没有指定的属性,则尝试调用__getattr__
方法。
- 重载
__getattr__
方法可以自定义查找__dict__
属性字典中没有的属性的方式。- 重载
__getattribute__
方法可以自定义所有属性的查找方式。
参数
obj
- 要获取属性的对象name
- 要获取的属性名
返回值
属性的值;如果属性不存在,则产生 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'))