2022年 11月 4日

python中setattr()函数用法详解

setattr() 函数对应函数 getattr(),用于设置属性值,该属性不一定是存在的。

getattr()用法详见博文:python中getattr()函数用法详解_IT之一小佬的博客-CSDN博客

setattr() 函数源码:

  1. def setattr(x, y, v): # real signature unknown; restored from __doc__
  2. """
  3. Sets the named attribute on the given object to the specified value.
  4. setattr(x, 'y', v) is equivalent to ``x.y = v''
  5. """
  6. pass

语法结构:

setattr(object, name, value)
  • object — 对象。
  • name — 字符串,对象属性。
  • value — 属性值。
  • return   None

示例代码1:  【类中属性值存在的情况】

  1. class Test(object):
  2. test = 1
  3. print(Test.test)
  4. print(Test().test)
  5. obj = Test()
  6. ret = getattr(obj, 'test') # 获取属性 test 值
  7. print(ret)
  8. setattr(obj, 'test', 5) # 设置属性 test 值
  9. print(obj.test)

运行结果:

示例代码2:  【类中属性值不存在的情况】

  1. class Test(object):
  2. test = 1
  3. obj = Test()
  4. setattr(obj, 'age', 5) # 设置属性 age 值
  5. print(obj.age)

运行结果: