getattr()
方法返回对象的命名属性的值。如果未找到,它将返回提供给函数的默认值。
示例
class Student:
marks = 88
name = 'Sheeran'
person = Student()
name = getattr(person, 'name')
print(name)
marks = getattr(person, 'marks')
print(marks)
# Output:
# Sheeran
# 88
getattr() 语法
getattr()
方法的语法是
getattr(object, name[, default])
上述语法等同于
object.name
getattr() 参数
getattr()
方法接受多个参数
- object - 要返回其命名属性值的对象
- name - 包含属性名称的字符串
- default (可选) - 当未找到命名属性时返回的值
getattr() 返回值
getattr()
方法返回
- 给定对象的命名属性的值
default
,如果未找到命名属性AttributeError
异常,如果未找到命名属性且未定义default
示例 1:getattr() 在 Python 中如何工作?
class Person:
age = 23
name = "Adam"
person = Person()
print('The age is:', getattr(person, "age"))
print('The age is:', person.age)
输出
The age is: 23 The age is: 23
示例 2:当未找到命名属性时 getattr()
class Person:
age = 23
name = "Adam"
person = Person()
# when default value is provided
print('The sex is:', getattr(person, 'sex', 'Male'))
# when no default value is provided
print('The sex is:', getattr(person, 'sex'))
输出
The sex is: Male AttributeError: 'Person' object has no attribute 'sex'
命名属性 sex 不存在于 Person 类中。因此,当使用默认值 Male
调用 getattr()
方法时,它返回 Male。
但是,如果我们不提供任何默认值,当未找到命名属性 sex 时,它会引发 AttributeError
,表示对象没有 sex 属性。
另请阅读