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 相关文章推荐
在RedHat系Linux上部署Python的Celery框架的教程
Apr 07 Python
python输出当前目录下index.html文件路径的方法
Apr 28 Python
Python的Django框架中settings文件的部署建议
May 30 Python
python 实现上传图片并预览的3种方法(推荐)
Jul 14 Python
基于python元祖与字典与集合的粗浅认识
Aug 23 Python
python实现两个文件合并功能
Apr 01 Python
对pandas中两种数据类型Series和DataFrame的区别详解
Nov 12 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
Python实现字符串匹配的KMP算法
Apr 04 Python
基于Python实现ComicReaper漫画自动爬取脚本过程解析
Nov 11 Python
Pytorch实验常用代码段汇总
Nov 19 Python
pandas按条件筛选数据的实现
Feb 20 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
1.PHP简介
2006/10/09 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
Smarty foreach控制循环次数的一些方法
2015/07/01 PHP
php验证邮箱和ip地址最简单方法汇总
2015/10/30 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP pear安装配置教程
2016/05/14 PHP
centos7上编译安装php7以php-fpm方式连接apache
2018/11/08 PHP
laravel在中间件内生成参数并且传递到控制器中的2种姿势
2019/10/15 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
javascript 清空form表单中某种元素的值
2009/12/26 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
python脚本实现查找webshell的方法
2014/07/31 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
Python生成器的使用方法和示例代码
2019/03/04 Python
Python根据当前日期取去年同星期日期
2019/04/14 Python
python实现图像拼接
2020/03/05 Python
python实现读取类别频数数据画水平条形图案例
2020/04/24 Python
Python如何读取、写入CSV数据
2020/07/28 Python
美国著名的户外用品品牌:L.L.Bean
2018/01/05 全球购物
澳大利亚快时尚鞋类市场:Billini
2018/05/20 全球购物
main 函数执行以前,还会执行什么代码
2013/04/17 面试题
高中军训广播稿
2014/01/14 职场文书
药学专业学生的自我评价分享
2014/02/06 职场文书
学徒工职责
2014/03/06 职场文书
项目合作协议书范本
2014/04/16 职场文书
留学生求职信
2014/06/03 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
合同意向书范本
2014/07/30 职场文书
2014年干部作风建设总结
2014/10/23 职场文书
爱心助学感谢信
2015/01/21 职场文书
检讨书怎么写
2015/05/07 职场文书
项目验收申请报告
2015/05/15 职场文书
公司转让协议书
2016/03/19 职场文书
Python测试框架pytest高阶用法全面详解
2022/06/01 Python