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

如何使用Python的getattr和setattr函数来访问对象属性

发布时间:2023-05-20 10:06:07

Python中的getattr函数和setattr函数是Python内置的两个函数,用于访问一个对象的属性。getattr函数用于获取一个对象的属性值,而setattr函数用于设置一个对象的属性值。这两个函数都是很实用的Python内置函数,并且在编写Python程序时经常会用到。

getattr函数的用法

getattr函数的用法如下:

getattr(object, name[, default])

其中,object为要获取属性的对象,name为要获取的属性名,default为可选参数,默认值为None,当指定属性不存在时,返回default。

例如:

class Person:

    name = "Tom"

    age = 18

p = Person()

# 获取对象的属性值

print(getattr(p, 'name')) # 输出:Tom

# 获取对象的属性值,指定默认值

print(getattr(p, 'gender', 'unknown')) # 输出:unknown

在上面的代码中,定义了一个Person类,创建了一个Person对象p。然后通过getattr函数获取了对象p的属性name的值,并指定了默认值。由于对象p有名为name的属性,所以输出Tom。而对于gender属性,p对象没有定义,所以返回指定的默认值unknown。

setattr函数的用法

setattr函数的用法如下:

setattr(object, name, value)

其中,object为要设置属性的对象,name为要设置的属性名,value为要设置的属性值。

例如:

class Person:

    name = "Tom"

    age = 18

p = Person()

# 设置对象属性的值

setattr(p, 'age', 20)

# 输出对象的属性值

print(p.age) # 输出:20

在上面的代码中,定义了一个Person类,创建了一个Person对象p。然后通过setattr函数设置了对象p的属性age的值为20。最后输出对象p的属性age的值,发现已经被设置为20了。

getattr和setattr综合使用

在实际应用中,getattr函数和setattr函数经常会一起使用。例如:

class Person:

    name = "Tom"

    age = 18

p = Person()

# 获取对象的属性值

print(getattr(p, 'name')) # 输出:Tom

# 设置对象属性的值

setattr(p, 'age', 20)

# 输出对象的属性值

print(p.age) # 输出:20

在上面的代码中,定义了一个Person类,创建了一个Person对象p。首先通过getattr函数获取了对象p的属性name的值。然后通过setattr函数设置了对象p的属性age的值为20。最后输出对象p的属性age的值,发现已经被设置为20了。

总之,getattr函数和setattr函数是Python内置的两个函数,可以方便地访问对象的属性。在编写Python程序时,这两个函数被广泛应用,尤其是在一些大型项目中,它们的作用更加突出。