Python3 setattr() 函数详解 添加对象(类)的属性
setattr()
函数的主要作用是设置(添加)对象的属性,第一个参数是一个对象,第二个参数是属性的名称(该名称可以是已经存在的属性也可以是不存在的属性),第三个参数是属性的值(可以是任意值),如果第二个参数的属性名是对象已存在的属性,则会覆盖原属性的值,如果是不存在的属性名称,则会新增属性到对象中。例如,setattr(o,'new',123)等效于o.new = 123。
它是Python的内置函数,在python文件中直接可以使用。
语法
setattr(object, name, value)
参数
object - 指定对象 name - 对象的属性名称,可以是已存在的,也可以是不存在的 value - 属性的值
实例
代码及运行结果:
#创建类
class main:
a = 1
b = 2
def run(self):
print(123)
#实例化类
o = main()
#新增属性C
setattr(o, 'c', 5)
#打印新输出
print(o.c)
#输出结果:5
#需要注意,不仅填写的已存在的属性名称会覆盖已有属性的值。填写了已存在的方法名称,也会覆盖这个方法的。在一些比较严格的情况下,尽量先检查属性的类型或者是否已经存在。
setattr(o, 'run', 10)
print(o.run)
#输出结果:10