反射
通过字符串来映射实现同名函数功能就是反射。是不是很神奇,对,我都快神奇死了,当我在学函数的时候就在想这个问题,现在就这么被解决了,我果然是个菜鸟。。。
好啦,下面让我自己给自己总结下怎么使用反射,
使用反射一共有四个函数。
- hasattr(obj,name)。用来判断,在obj中是否有与name同名的定义的函数与属性。
- getattr(obj,name)。用来获取obj 中与name 同名的函数或属性,如果后面加一个可执行的(),函数可执行。
- setattr(object,name,v)。用来设置属性或者函数功能。效果等同于object.name= v。
- delattr(object,name)。对函数或者数据进行删除。效果等同于del object.name。
对当前模块的类成员进行反射。
需要导入sys模块,然后利用sys.modules[_name _]就可以确定同名的类。