setattr()函数设置对象属性的值。
setattr()函数的语法为:
setattr(object, name, value)
如果要获取对象的属性,请使用getattr()。
setattr()函数具有三个参数:
object -必须设置属性的对象
name -属性名称
value -赋予属性的值
setattr()方法不返回任何内容。返回None。
class Person: name = 'Adam' p = Person() print('修改前:', p.name) #将名称设置为'John' setattr(p, 'name', 'John') print('修改后:', p.name)
输出结果
修改前: Adam 修改后: John
如果找不到该属性,则setattr()创建一个新属性并为其分配值。但是,只有在对象实现该__dict__()方法的情况下才行。
您可以使用dir()函数检查对象的所有属性。
class Person: name = 'Adam' p = Person() # 将属性名设置为 John setattr(p, 'name', 'John') print('Name is:', p.name) # 设置Person中不存在的属性 setattr(p, 'age', 23) print('Age is:', p.age)
输出结果
Name is: John Age is: 23