首页 > 编程语言 > 详细

python 之反射

时间:2017-02-23 00:04:36      阅读:172      评论:0      收藏:0      [点我收藏+]

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

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

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

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

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

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

结果:

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

python 之反射

原文:http://www.cnblogs.com/Erick-L/p/6431444.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!