📜  Python getattr()

📅  最后修改于: 2020-09-20 04:06:00             🧑  作者: Mango

getattr()方法返回对象的命名属性的值。如果找不到,它将返回提供给该函数的默认值。

getattr()方法的语法为:

getattr(object, name[, default])

上面的语法等效于:

object.name

getattr()参数

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

  1. object-要返回其命名属性值的对象
  2. 字符串包含属性名称的字符串
  3. 默认值(可选)-找不到命名属性时返回的值

从getattr()返回值

getattr()方法返回:

  1. 给定对象的命名属性的值
  2. 如果没有找到命名属性,则为default
  3. 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'

Person不存在指定的属性sex 。因此,当使用默认值Male调用getattr()方法时,它将返回Male。

但是,如果我们不提供任何默认值,则在找不到命名属性sex时,它会引发AttributeError该对象没有sex属性。