当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python getattr()用法及代码示例


在本教程中,我们将借助示例了解 Python getattr() 方法。

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(object, name[, default])

上面的语法等价于:

object.name

参数:

getattr() 方法采用多个参数:

  • object- 要返回其命名属性值的对象
  • name- 包含属性名称的字符串
  • 默认(可选)- 未找到命名属性时返回的值

返回:

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 属性。

相关用法


注:本文由纯净天空筛选整理自 Python getattr()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。