📅  最后修改于: 2023-12-03 15:34:14.818000             🧑  作者: Mango
在Python中,getattr()是一个内置函数,它允许我们获取一个对象的属性。如果属性不存在,getattr()的默认行为是抛出AttributeError异常。但是,我们可以使用getattr()的第三个可选参数来指定一个默认值,这样如果属性不存在时,将返回我们指定的默认值。
下面是getattr()方法的用法和一些示例:
getattr(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()可以让我们轻松地获取对象的属性,同时通过提供默认值,避免了访问不存在属性时可能抛出的异常。