Python中的getattr()函数是做什么的?
发布时间:2023-06-22 01:10:06
getattr()函数是Python内置函数之一,它用于获取对象的属性。具体来说,getattr()能够通过字符串的方式获取对象的属性,如果对象不存在该属性则可以设置默认值。
getattr()函数的基本语法为:
getattr(object, name[, default])
参数说明:
- object:表示需要获取属性的对象。
- name:表示属性名称,字符串类型。
- default:表示如果对象不存在该属性,则返回的默认值。
例如,我们有一个Person类:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
我们创建一个Person对象p1,然后使用getattr()来获取其属性:
p1 = Person('Tom', 18)
name_attr = getattr(p1, 'name')
print(name_attr) # 'Tom'
gender_attr = getattr(p1, 'gender', 'Unknown')
print(gender_attr) # 'Unknown'
在以上代码中,我们首先通过getattr(p1, 'name')来获取p1对象的name属性,并将其赋值给name_attr变量。因为p1对象的确拥有name属性,所以name_attr的值为'Tom'。
然后,我们尝试使用getattr(p1, 'gender', 'Unknown')来获取p1对象的gender属性。但是,我们知道p1对象并没有gender属性,因此函数会返回默认值'Unknown',并将其赋值给gender_attr变量。
此外,getattr()函数不仅可以获取类对象的属性,还可以获取模块、方法、内置类型等对象的属性。具体用法和类对象类似,只需要传入相应的对象即可。
总结下来,getattr()函数可以帮助我们通过字符串的方式获取对象的属性,从而使得代码更加动态。通过设置默认值参数,我们可以在对象不具备某属性的情况下,避免程序出现异常而让代码更加健壮。
