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中join 和 split详解(推荐)
Jun 30 Python
Python初学时购物车程序练习实例(推荐)
Aug 08 Python
python探索之BaseHTTPServer-实现Web服务器介绍
Oct 28 Python
python使用邻接矩阵构造图代码示例
Nov 10 Python
Centos7 Python3下安装scrapy的详细步骤
Mar 15 Python
Sanic框架路由用法实例分析
Jul 16 Python
django 将model转换为字典的方法示例
Oct 16 Python
python实现将文件夹下面的不是以py文件结尾的文件都过滤掉的方法
Oct 21 Python
python进阶之多线程对同一个全局变量的处理方法
Nov 09 Python
Python二元赋值实用技巧解析
Oct 25 Python
使用python去除图片白色像素的实例
Dec 12 Python
浅谈Tensorflow加载Vgg预训练模型的几个注意事项
May 26 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 执行系统命令的方法
2009/07/07 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
PHP常用算法和数据结构示例(必看篇)
2017/03/15 PHP
详解PHP实现支付宝小程序用户授权的工具类
2018/12/25 PHP
用方法封装javascript的new操作符(一)
2010/12/25 Javascript
jQuery结合PHP+MySQL实现二级联动下拉列表[实例]
2011/11/15 Javascript
关于jQuery对象数据缓存Cache原理以及jQuery.data详解
2013/04/07 Javascript
JQuery做的一个简单的点灯游戏分享
2014/07/16 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
JQuery validate插件验证用户注册信息
2016/05/11 Javascript
jquery中的常见问题及快速解决方法小结
2016/06/14 Javascript
jQuery实现iframe父窗体和子窗体的相互调用
2016/06/17 Javascript
利用Angularjs中模块ui-route管理状态的方法
2016/12/27 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
bootstrap的常用组件和栅格式布局详解
2017/05/02 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
Vue开发之watch监听数组、对象、变量操作分析
2019/04/25 Javascript
jquery登录的异步验证操作示例
2019/05/09 jQuery
Python中使用Inotify监控文件实例
2015/02/14 Python
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
python学习之面向对象【入门初级篇】
2017/01/21 Python
Python的时间模块datetime详解
2017/04/17 Python
python中requests库session对象的妙用详解
2017/10/30 Python
Python之lambda匿名函数及map和filter的用法
2019/03/05 Python
pygame实现俄罗斯方块游戏(AI篇1)
2019/10/29 Python
Web前端页面跳转并取到值
2017/04/24 HTML / CSS
全球酒店预订网站:Hotels.com
2016/08/10 全球购物
Martinelli官方商店:西班牙皮鞋和高跟鞋品牌
2019/07/30 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
体育教育个人自荐信范文
2013/12/01 职场文书
大学生职业生涯规划书模版
2013/12/30 职场文书
迟到检讨书900字
2014/01/14 职场文书
文字自荐书范文
2014/02/10 职场文书
语文课外活动总结
2014/08/27 职场文书
简单聊聊TypeScript只读修饰符
2022/04/06 Javascript