Python 的反射机制是指通过字符串的形式,导入模块;通过字符串的形式,去模块中寻找指定的函数,并执行;利用字符串的形式去对象(模块)中操作(查找/获取/删除/添加)成员,一种基于字符串的事件驱动。
相关方法有:
getattr()
:根据字符串的形式去某个模块中寻找东西。hasattr()
:根据字符串的形式去某个模块中判断东西是否存在。setattr()
:根据字符串的形式去某个模块中设置东西。delattr()
:根据字符串的形式去某个模块中删除东西。
以getattr
方法为例,它接收2个参数,前面的是一个对象或者模块,后面的是一个字符串,getattr
函数让程序去相应模块里,寻找一个叫字符串的成员(是叫,不是等于),这个过程就相当于把一个字符串变成一个函数名的过程。然后,把获得的结果赋值给变量,实际上变量就指向了模块里的某个函数,最后通过调用函数,实现对模块里函数的调用。这完全就是一个动态访问的过程,一切都不写死,全部根据用户输入来变化。