getattr()方法返回对象的命名属性的值。如果找不到,它将返回提供给该函数的默认值。
getattr()方法的语法为:
getattr(object, name[, default])
上面的语法等效于:
object.name
getattr()方法采用多个参数:
object -要返回其命名属性值的对象
name -包含属性名称的字符串
default(可选) -找不到命名属性时返回的值
getattr()方法返回:
给定对象的命名属性的值
default,如果找不到命名属性
AttributeError异常,如果未找到已命名的属性且未定义默认值
class Person: age = 23 name = "Adam" person = Person() print('年龄是:', getattr(person, "age")) print('年龄是:', person.age)
运行该程序时,输出为:
年龄是: 23 年龄是: 23
class Person: age = 23 name = "Adam" person = Person() # 当提供默认值时 print('性别是:', getattr(person, 'sex', 'Male')) # 当没有提供默认值时 print('性别是:', getattr(person, 'sex'))
运行该程序时,输出为:
性别是: Male AttributeError: 'Person' object has no attribute 'sex'
已命名的属性sex不存在于Person类中。因此,当使用默认值Male调用getattr()方法时,它将返回Male。
但是,如果我们不提供任何默认值,则在找不到命名属性sex时,会抛出一个AttributeError说法,即该对象没有sex属性。