反射这个术语在很多语言中都存在,并且存在大量的应用;反射主要是指可以访问,检测和修改它本身状态或行为的一种能力,在python中一切皆对象(类,实例,模块等等都是对象),那么我们可以通过反射的形式操作对象相关的属性;
python中反射主要有下面几个方法:
- hasattr(object,name):判断对象中有没有一个name字符串对应的方法或属性
- getattr(object,name,default=None):获取对象name字符串属性的值,如果不存在返回default的值
- setattr(object,key,value):设置对象的key属性为value值,等同于object.key = value
- delattr(object,name):删除对象的name字符串属性