欢迎访问宙启技术站
智能推送

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()函数可以帮助我们通过字符串的方式获取对象的属性,从而使得代码更加动态。通过设置默认值参数,我们可以在对象不具备某属性的情况下,避免程序出现异常而让代码更加健壮。