python提供了四个关于反射的四个内置函数分别是:
- getattr 获取指定字符串名称的对象属性
- setattr 为对象设置一个对象
- hasattr 判断对象是否有对应的对象(字符串)
- delattr 删除指定属性
class A: sex = "女" def get_name(self): return "get_name方法" def get_age(self): return "get_age方法" s = hasattr(A,"get_name") #True 实例和类都可以作用 m = hasattr(A(),"get_name") #True r = getattr(A(),"get_name") print(r()) #get_name方法 调用get_name方法 print(getattr(A,"sex")) #女 setattr(A,"sex","男") #设置类的属性 print(getattr(A,"sex")) #男 delattr(A,"get_name") #删除A类中的属性 print(hasattr(A,"get_name")) #False
通过字符串导入模块
temp = "re" model = __import__(temp) def main(): txt = "hj123uo" pattern = model.compile(r"[0-9]+") print(model.search(pattern, txt).group()) if __name__ == '__main__': main()