python 动态调用函数实例解析
作者:百变小超 时间:2021-03-11 09:31:41
1. 根据字符串名称 动态调用 python文件内的方法eval("function_name")(参数)
2. 根据字符串 动态调用类中的静态方法,getattr(ClassName,"function_name")(参数)
3. apply(functoin_name,parameters) 这个function_name不是字符串,而是函数对象本身;parameters是参数,类似(a,b,...)这样的格式
4. 当函数不确定参数的数目时候,采用 一个 * 或两个** 他们的用法是有讲究的。
下面的例子是,定义了一个函数列表字典,字典中保存有函数对象和函数的参数,可以实现动态为字典添加执行的函数,最后一起执行
from collections import OrderedDict
class ComponentCheck:
def __init__(self, data_dir):
self.data_dir = data_dir
self._extend_function_dic = OrderedDict({})
def add_extend_function(self, function_name, *parameters):
self._extend_function_dic[function_name] = parameters
def _check_extend_function(self):
for function_name, parameters in self._extend_function_dic.iteritems():
if not apply(function_name, parameters):
return False
return True
class CheckFunctions:
def __init__(self):
pass
def tollcost_check(data_path):
toll_cost_path = os.path.join(data_path, Importer.DT_KOR_TOLL_COST)
tollcost_component = ComponentCheck(toll_cost_path)
tollcost_component.add_extend_function(tollcost_component.check_file_pattern_list_match, CheckFunctions.TOLL_COST_FILENAME_PATTERN)
return tollcost_component
@staticmethod
def speed_camera_check(data_path):
speed_camera_path = os.path.join(data_path, Importer.DT_SAFETY_CAMERA)
speed_camera_component = ComponentCheck(speed_camera_path)
speed_camera_component.add_extend_function(speed_camera_component.check_not_exist_empty_directory)
return speed_camera_component
来源:https://www.cnblogs.com/dasheng-maritime/p/7833658.html
标签:python,动态,调用,函数
0
投稿
猜你喜欢
SQL根据时间范围条件查询数据
2009-01-18 13:32:00
Python爬取当网书籍数据并数据可视化展示
2023-11-20 11:31:14
对Python的zip函数妙用,旋转矩阵详解
2023-06-09 12:42:45
Excel VBA连接并操作Oracle
2009-08-08 22:58:00
sqlserver 存储过程动态参数调用实现代码
2011-10-24 19:41:22
oracle命令行删除与创建用户
2008-01-02 17:01:00
python 列表常用方法超详细梳理总结
2022-04-18 20:34:27
javascript设计模式 – 简单工厂模式原理与应用实例分析
2023-08-27 19:53:20
JAVA正则表达式 Pattern和Matcher
2023-07-01 19:13:53
Django使用unittest模块进行单元测试过程解析
2021-04-03 13:09:08
Python中np.argmax()函数用法示例
2021-06-17 23:47:09
动易CMS:九个常见的错误原因分析及解决方法(ZT)
2008-07-01 12:40:00
Oracle 安装和卸载问题收集(集合篇)第1/6页
2009-07-02 12:20:00
Mootools 1.2教程(22)——同时进行多个形变动画
2008-12-29 14:11:00
Python 如何读取字典的所有键-值对
2021-05-21 10:06:53
pandas库中 DataFrame的用法小结
2021-08-11 00:54:01
细化解析:MySQL+Webmin轻松创建数据库
2009-01-14 13:13:00
python中根据字符串调用函数的实现方法
2023-10-03 03:40:12
Python3中urlopen()的用法解读
2023-11-22 20:26:19
如何定义记录集打开的游标类型?
2009-11-15 20:19:00