反射: 通过字符串的形式对 对象 进行增删改查

setattr 设置某个属性的值

class A(object):
def __init__(self):
self.name = "sath" def get(self):
print("get") a = A() setattr(a, "age", 37)
# setattr(object, attribute, value) ===> object.attribute = value
print(a.age)
# print(dir(a))
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__',
'__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__',
'__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__',
'age', 'get', 'name']  # 可以发现在a这个对象的空间中新加了一个属性"age"

getattr  获取某个属性的值

class A(object):
def __init__(self):
self.name = "sath" def get(self):
print("get") a = A() ret = getattr(a, "name", "LaoWang")
getattr(object, "attribute", default) # 从你那个对象中反射某个属性或方法, 反射不到的话使用默认值
print(ret)
# sath

hasattr  判断是否拥有

class A(object):
def __init__(self):
self.name = "sath" def get(self):
print("get") a = A() ret = hasattr(a, "name") # 判断一个对象是否有某个属性或方法, 返回一个布尔值
print(ret)
# True

delattr  删除某个属性

class A(object):
def __init__(self):
self.name = "sath" def get(self):
print("get") a = A()
print(dir(a))
delattr(a, "name") # 删除对象的某个属性
print(dir(a))

setattr应用实例-restframework中的ModelViewSet

最新文章

  1. kuangbin_MST B (POJ 1287)
  2. WPF SDK研究 之 AppModel
  3. python(22)总结下最近遇到的编码问题
  4. skynet newservice API参考
  5. VMware WorkStation安装时提示The MSI failed
  6. PHP修改记录
  7. Spring Cloud Netflix多语言/非java语言支持之Spring Cloud Sidecar
  8. 购物车自己sql错误
  9. stroop效应matlab实验
  10. for循环的简介及break和continue的区别
  11. CoordTools
  12. table可拖拽改变宽度
  13. 机器学习算法整理(七)支持向量机以及SMO算法实现
  14. nodejs mysql 执行多条sql语句
  15. 全局设置axios发送cookie(axios 默认不发送cookie)
  16. js 动态设置 option 的selected 选项
  17. error C2065:!错误:未定义标识符“pBuf);”
  18. [Android Pro] Android--Sensor传感器
  19. Emacs在RHEL 5上的安装和使用
  20. Android:自定义Sqlite数据库路径

热门文章

  1. 添加CentOS扩展源
  2. 记录code修改
  3. percona toolkit之slave工具
  4. java Maven项目右键没有maven菜单项的解决方案!
  5. QT的QPropertyAnimation讲解
  6. ptyhon class定制方法
  7. OC基础数据类型-NSNumber
  8. SOJ3266 Birthday
  9. PHP使用in_array函数检查数组中是否存在某个值
  10. 使用 PHP Curl 做数据中转