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将文本转换成图片输出的方法
Apr 28 Python
python清除字符串里非字母字符的方法
Jul 02 Python
python实现redis三种cas事务操作
Dec 19 Python
python将字典内容存入mysql实例代码
Jan 18 Python
windows下安装Python的XlsxWriter模块方法
May 03 Python
Python实现的生产者、消费者问题完整实例
May 30 Python
windows下pycharm安装、创建文件、配置默认模板
Jul 31 Python
如何通过雪花算法用Python实现一个简单的发号器
Jul 03 Python
Python 中 -m 的典型用法、原理解析与发展演变
Nov 11 Python
pytorch GAN生成对抗网络实例
Jan 10 Python
深入理解Tensorflow中的masking和padding
Feb 24 Python
python实现简易版学生成绩管理系统
Jun 22 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
定义php常量的详解
2013/06/09 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
php定界符
2014/06/19 PHP
分享一个Laravel好用的Cache宏
2015/03/02 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
php实现带读写分离功能的MySQL类完整实例
2016/07/28 PHP
JS Range HTML文档/文字内容选中、库及应用介绍
2011/05/12 Javascript
兼容IE和Firefox的javascript获取iframe文档内容的函数
2011/08/15 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
JavaScript判断一个字符串是否包含指定子字符串的方法
2015/03/18 Javascript
js实现固定显示区域内自动缩放图片的方法
2015/07/18 Javascript
Vue.js 和 MVVM 的注意事项
2016/11/07 Javascript
vue-cli3.0配置及使用注意事项详解
2018/09/05 Javascript
Vue项目中ESlint规范示例代码
2019/07/04 Javascript
深入解析Python中的变量和赋值运算符
2015/10/12 Python
python实现简单的文字识别
2018/11/27 Python
Python Numpy库安装与基本操作示例
2019/01/08 Python
pyqt5让图片自适应QLabel大小上以及移除已显示的图片方法
2019/06/21 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
python 实现GUI(图形用户界面)编程详解
2019/07/17 Python
python 项目目录结构设置
2020/02/14 Python
如何使用python记录室友的抖音在线时间
2020/06/29 Python
Python自动化操作实现图例绘制
2020/07/09 Python
Kmeans均值聚类算法原理以及Python如何实现
2020/09/26 Python
python多线程和多进程关系详解
2020/12/14 Python
Qoo10台湾站:亚洲领先的在线市场
2018/05/15 全球购物
GWT (Google Web Toolkit)有哪些主要的原件组成?
2015/06/08 面试题
大四学生思想汇报
2014/01/13 职场文书
护士自我评价范文
2014/01/25 职场文书
刊首寄语大全
2014/04/11 职场文书
团日活动总结书格式
2014/05/08 职场文书
现场活动策划方案
2014/08/22 职场文书
教师个人发展总结
2015/02/11 职场文书
学校运动会开幕词
2016/03/03 职场文书
用python自动生成日历
2021/04/24 Python
怎么用Python识别手势数字
2021/06/07 Python