最近项目需求,需要动态调用函数,这里整理一下思路。
很多时候,我们需要根据外面传进来的字符串取动态调用函数,并获取返回值。例如单项目检查等,检查的类型可以事先在定义文件中配置好,这样后期维护的时候,如果需要修改,直接修改配置文件就好了,而不必修改代码。要动态调用,如果是在同一个模块(.py)中,直接使用eval(function_name)(param(如果有的话))。如果是在一个模块中动态调用另一个模块中的函数,则需要使用 importlib 包。这里主要介绍 eval 用法, importlib 包的具体用法后面再做追加。
事先定义多个方法:
# 检查文本类型是否为字符串
# @param text 文本
# @return True:是,False:不是
def __string(text):
return True if isinstance(text, str) else False
# 检查文本类型是否为浮点型
# @param text 文本
# @return True:是,False:不是
def __float(text):
if __string(text):
try:
return True if float("{0}".format(text)) else False
except Exception:
return False
else:
return True if isi