反射

类 - 反射

  举例如下:

  定认一个狗类,狗有一个吃的方法,通过用户输入来判断方法是否存在,如果存在,调用该方法。

  hasattr(obj,name_str):判断对象是否有对应的字符串方法;

  getattr(obj,name_str):根据字符串去获取obj里的对应的方法的内存地址;

  setattr(obj,name_str,fun) 动态将fun方法增加到obj中;

  delattr 删除一个属性;

反射

动态将fun方法装载进obj中;

反射

反射

当用setattr传入的是一个属性,而不是一个方法时,返回的是默认setattr的默认值。

反射

执行结果:

反射

删除属性

反射