📜  Python| getattr() 方法(1)

📅  最后修改于: 2023-12-03 15:34:14.818000             🧑  作者: Mango

Python | getattr() 方法

在Python中,getattr()是一个内置函数,它允许我们获取一个对象的属性。如果属性不存在,getattr()的默认行为是抛出AttributeError异常。但是,我们可以使用getattr()的第三个可选参数来指定一个默认值,这样如果属性不存在时,将返回我们指定的默认值。

下面是getattr()方法的用法和一些示例:

语法
getattr(object, name[, default])
参数
  • object: 表示要获取属性的对象。
  • name: 字符串,表示要获取的属性名。
  • default (可选): 如果指定了该参数,而且属性不存在,将返回给定的默认值。
返回值

如果属性存在,则返回该属性的值;否则,如果给定了默认值,则返回该默认值,否则抛出AttributeError异常。

示例
# 定义一个类
class Person:
    age = 25

person = Person()

# 获取属性 age
print('Age is:', getattr(person, "age"))

# 获取属性 nationality,但是这个属性不存在,会抛出 AttributeError 异常
#print('Nationality is:', getattr(person, "nationality")) 

# 获取属性 nationality,如果属性不存在,则返回 None
print('Nationality is:', getattr(person, "nationality", None))

输出:

Age is: 25
Nationality is: None

在上面的例子中,我们定义了一个名为Person的类,它有一个age属性,其值为25。然后我们通过创建一个person对象来访问age属性,以及尝试访问一个不存在的nationality属性。由于nationality属性不存在,所以如果我们不提供默认值,将抛出AttributeError异常。但是,在第二次访问nationality属性时,我们提供了默认值,并使用None作为默认值。这样,getattr()将返回None而不是抛出异常。

总之,getattr()可以让我们轻松地获取对象的属性,同时通过提供默认值,避免了访问不存在属性时可能抛出的异常。