python 反射

import timesss
##反射:根据字符串的形式去对象(模块)中操作其成员(查找/获取/删除/添加)

#根据用户输入内容,导入模块(字符串形式导入模块)

inp = input("请输入模块名:")
res = __import__(inp)

uu = res.md5("123456")
print(uu)
#字符串方式去模块中查找函数,并执行
# getattr 以字符串形式去模块中寻找函数/全局变量
inpfunc = input("请输入要执行的函数名;")
func = getattr(res,inpfunc,'no found') # 去res模块中查找inpfunc函数,找不到则打印no found
print(func())
# hasattr() 判断某个模块中是否存在某个函数或全局变量
u = hasattr(timesss,'name')
print(u)
#  setattr(object, name, value)
#给模块增加一个全局变量:现有的或一个新的
#成功返回none
t = setattr(timesss,'sex','girl')
print(t) #None
m = hasattr(timesss,'sex')
print(m)# True
#delattr(object, name)删除模块中某个变量或者函数
delattr(timesss,'sex')
m = hasattr(timesss,'sex')
print(m)#False
原文地址:https://www.cnblogs.com/wuxinyan/p/8955247.html