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 相关文章推荐
Python下线程之间的共享和释放示例
May 04 Python
python各种语言间时间的转化实现代码
Mar 23 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
Tornado 多进程实现分析详解
Jan 12 Python
Python简单爬虫导出CSV文件的实例讲解
Jul 06 Python
python使用magic模块进行文件类型识别方法
Dec 08 Python
python+ffmpeg批量去视频开头的方法
Jan 09 Python
Python 多维List创建的问题小结
Jan 18 Python
选择python进行数据分析的理由和优势
Jun 25 Python
python实现在多维数组中挑选符合条件的全部元素
Nov 26 Python
Pycharm 使用 Pipenv 新建的虚拟环境(图文详解)
Apr 16 Python
如何在keras中添加自己的优化器(如adam等)
Jun 19 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
深入理解:单一入口、MVC、ORM、CURD、ActiveRecord概念
2013/06/06 PHP
php 获取文件行数的方法总结
2016/10/11 PHP
PHP+Ajax异步带进度条上传文件实例
2016/11/01 PHP
Javascript Math ceil()、floor()、round()三个函数的区别
2010/03/09 Javascript
关于js内存泄露的一个好例子
2013/12/09 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
纯JS打造网页中checkbox和radio的美化效果
2016/10/13 Javascript
在网页中插入百度地图的步骤详解
2016/12/02 Javascript
Angular企业级开发——MVC之控制器详解
2017/02/20 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
js+html5实现复制文字按钮
2017/07/15 Javascript
微信小程序引用公共js里的方法的实例详解
2017/08/17 Javascript
基于Vue.js 2.0实现百度搜索框效果
2020/12/28 Javascript
JS与HTML结合实现流程进度展示条思路详解
2017/09/03 Javascript
JavaScript复制内容到剪贴板的两种常用方法
2018/02/27 Javascript
微信小程序HTTP请求从0到1封装
2019/09/09 Javascript
Layui选项卡制作历史浏览记录的方法
2019/09/28 Javascript
python mysqldb连接数据库
2009/03/16 Python
用Python实现换行符转换的脚本的教程
2015/04/16 Python
在Python的Django框架中创建和使用模版
2015/07/15 Python
Python实现GUI学生信息管理系统
2020/04/05 Python
读取json格式为DataFrame(可转为.csv)的实例讲解
2018/06/05 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
Pytorch实现各种2d卷积示例
2019/12/30 Python
人事文员岗位职责
2014/02/16 职场文书
读书活动总结
2014/04/28 职场文书
新学期国旗下演讲稿
2014/05/08 职场文书
中学生旷课检讨书2篇
2014/10/09 职场文书
2014年食品安全工作总结
2014/12/04 职场文书
沂蒙六姐妹观后感
2015/06/08 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
在 Python 中利用 Pool 进行多线程
2022/04/24 Python
Python安装及建立虚拟环境的完整步骤
2022/06/25 Servers
基于Python实现nc批量转tif格式
2022/08/14 Python