python 之反射

通过字符串的形式导入模块

通过字符串的形式,去模块中寻找制定的函数,并执行getattr(模块名,函数名,默认值)

通过字符串的形式,去模块中设置东西setattr(模块名,函数名/变量名,lambda表达式/变量值)

通过字符串的形式,去模块中删除东西delattr(模块名,函数名)

根据字符串的形式去对象(某个模块)中操作其成员

 inp = input('请输入模块名:')
inp_func = input('请输入要执行的函数:')
dd = __import__(inp) # 以字符串的形式导入模块
 # from xxx.xx import oo 等价于 __import__('xxx.xx.oo',fromlist = True)
 target_func = getattr(dd,inp_func,,None) # 以字符串的形式在模块中寻找函数 如果没有找到返回None
r = target_func()
print(r)
# 内存中操作
hasattr(模块名,函数名)# 判断函数是否存在
setattr(模块名,函数名/变量名,lambda表达式/变量值)
delattr(模块名,函数名)

结果:

请输入模块名:commons
请输入要执行的函数:f1
F1

上一篇:win10安装mysql8.0及以上版本


下一篇:linux 下maven安装