python中的反射功能是由以下四个内置函数提供:hasattr、getattr、setattr、delattr,改四个函数分别用于对对象内部执行:检查是否含有某成员、获取成员、设置成员、删除成员。
1 反射: 2 通过字符串的形式导入模块 3 通过字符串的形式,去模块中寻找指定的函数,并执行 4 5 __import__(字符串) 将字符串作为模块名导入 赋值的话就相当于 as 6 7 反射: 8 根据字符串的形式取某个模块中寻找东西 9 根据字符串的形式取某个模块中判断东西是否存在 10 根据字符串的形式去某个模中设置东西 11 根据字符串的形式取某个模块中删除的东西 12 13 根据字符串的形式去对象(某个模块)中操作其成员 14 15 反射介绍笔记和__import__把字符串当作模块导入
1 class Foo(object): 2 3 def __init__(self): 4 self.name = 'wupeiqi' 5 6 def func(self): 7 return 'func' 8 9 obj = Foo() 10 11 # #### 检查是否含有成员 #### 12 hasattr(obj, 'name') 13 hasattr(obj, 'func') 14 15 # #### 获取成员 #### 16 getattr(obj, 'name') 17 getattr(obj, 'func') 18 19 # #### 设置成员 #### 20 setattr(obj, 'age', 18) 21 setattr(obj, 'show', lambda num: num + 1) 22 23 # #### 删除成员 #### 24 delattr(obj, 'name') 25 delattr(obj, 'func')
1 __import__("模块名的字符串")
from 包 import 模块名 as 别名 ===等价于=== 别名 = __import__("模块名的字符串")
1 def f1(): 2 return "f1" 3 4 def f2(): 5 return "f2" 6 7 def f3(): 8 return "f3"