python 动态调用函数实例解析


Posted in Python onOctober 21, 2019

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Mac下Supervisor进程监控管理工具的安装与配置
Dec 16 Python
Python使用poplib模块和smtplib模块收发电子邮件的教程
Jul 02 Python
Python通过Django实现用户注册和邮箱验证功能代码
Dec 11 Python
python提取xml里面的链接源码详解
Oct 15 Python
Python测试线程应用程序过程解析
Dec 31 Python
OpenCV python sklearn随机超参数搜索的实现
Jan 17 Python
Python爬虫入门有哪些基础知识点
Jun 02 Python
Python基于locals返回作用域字典
Oct 17 Python
python文件名批量重命名脚本实例代码
Apr 22 Python
OpenCV-Python实现怀旧滤镜与连环画滤镜
Jun 09 Python
python scrapy简单模拟登录的代码分析
Jul 21 Python
Python学习之os包使用教程详解
Mar 21 Python
python 两个数据库postgresql对比
Oct 21 #Python
python多进程(加入进程池)操作常见案例
Oct 21 #Python
Python实现字符串中某个字母的替代功能
Oct 21 #Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 #Python
基于Python解密仿射密码
Oct 21 #Python
python多继承(钻石继承)问题和解决方法简单示例
Oct 21 #Python
python超时重新请求解决方案
Oct 21 #Python
You might like
风味层面去分析咖啡油脂
2021/03/03 咖啡文化
php使用ob_flush不能每隔一秒输出原理分析
2015/06/02 PHP
php使用get_class_methods()函数获取分类的方法
2016/07/20 PHP
php 判断过去离现在几年的函数(实例代码)
2016/11/15 PHP
laravel框架 api自定义全局异常处理方法
2019/10/11 PHP
jQuery Validation实例代码 让验证变得如此容易
2010/10/18 Javascript
23个超流行的jQuery相册插件整理分享
2011/04/25 Javascript
jquery控制左右箭头滚动图片列表的实例
2013/05/20 Javascript
jquery放大镜效果超漂亮噢
2013/11/15 Javascript
javascript实现超炫的向上滑行菜单实例
2015/08/03 Javascript
JavaScript闭包实例详解
2016/06/03 Javascript
微信小程序 slider 详解及实例代码
2017/01/10 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
jQuery代码优化方法总结
2018/01/29 jQuery
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
JavaScript基础心法 深浅拷贝(浅拷贝和深拷贝)
2018/03/05 Javascript
js实现input密码框显示/隐藏功能
2020/09/10 Javascript
python在多玩图片上下载妹子图的实现代码
2013/08/13 Python
Python 命令行非阻塞输入的小例子
2013/09/27 Python
python进阶教程之函数参数的多种传递方法
2014/08/30 Python
简单使用Python自动生成文章
2014/12/25 Python
Python实现高效求解素数代码实例
2015/06/30 Python
python使用正则表达式的search()函数实现指定位置搜索功能
2017/11/10 Python
python不换行之end=与逗号的意思及用途
2017/11/21 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
django数据库自动重连的方法实例
2019/07/21 Python
python多进程下实现日志记录按时间分割
2019/07/22 Python
浅析Python迭代器的高级用法
2020/07/16 Python
css3实现可拖动的魔方3d效果
2019/05/07 HTML / CSS
自我评价个人范文
2013/12/16 职场文书
大学毕业自我评价
2014/02/02 职场文书
双方协议书
2014/04/22 职场文书
公司节能减排方案
2014/05/16 职场文书
就业意向书
2014/07/29 职场文书
2015年教师师德师风承诺书
2015/04/28 职场文书
浪漫婚礼主持词开场白
2015/11/24 职场文书