反射
反射:
python是动态语言,而反射(reflection)机制被视为动态语言的关键。
反射机制指的是在程序的运行状态中
对于任意一个类,都可以知道这个类的所有属性和方法;
对于任意一个对象,都能够调用他的任意方法和属性。
这种动态获取程序信息以及动态调用对象的功能称为反射机制。
dir:查看某个对象下,可以调用的属性——字符串
dir(obj)
内置函数:
hasattr() hasattr(obj,'x') Ture False
getattr() getattr(obj,'x')
getattr(obj,'x',None)
这样没有就返回None,就不会报错
setattr() setattr(obj,'y',1) None
存在,就赋值;不存在,就创建;内置类型不能增加属性。
delattr() delattr(obj,'y')
没有这个属性,就报错
属性是否存在,获取,设置,删除
obj.__dict__[dir(obj)[-2]]