1、反射的小例子:
>>> import json >>> dir(json) ['JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__builtins__', '__doc__', '__file__', '__name__', '__package__', '__path__', '__version__', '_default_decoder', '_default_encoder', 'decoder', 'dump', 'dumps', 'encoder', 'load', 'loads', 'scanner']
如上所示,dir 是一个内置的反射函数,可以列出对象的属性和方法
2、
通过字符串的形式,导入模块
通过字符串的形式,去模块中寻找指定的函数,并执行
反射:(在内存中操作,对原来的文件没有影响) 根据字符串的形式去某个模块中寻找东西 根据字符串的形式去某个模块中判断是否存在 根据字符串的形式去某个模块中设置东西 根据字符串的形式去某个模块中删除东西 根据字符串的形式去对象(某个模块)中操作成员
3、模块导入升级版
inp = input("请输入模块名:") inp_func = input("请输入要执行的函数名:") dd = __import__(inp)# __import__ 用于以字符串的形式导入模块 target_func = getattr(dd, inp_func)# getattr 用于以字符串的形式去某个模块中寻找函数 ret = target_func() print(ret)