python中根据字符串调用函数的实现方法


Posted in Python onJune 12, 2016

在python中可以根据字符串来调用函数:

1、使用getattr从字符串来调用函数

在多进程中,可能传递过来的是一个字符串,那么我怎么来调用一个已经存在的函数呢,主要就是使用到getattr函数的作用,这个函数就是在使用字符串得到这个字符串对应的函数的对象,然后就可以进行执行,如下所示:

在模块中,存在两个函数:

[root@python 530]# cat attr.py
#!/usr/bin/env python

def kel():
  print 'this is a kel function'


def smile():
  print 'this is a smile function'

if __name__ == '__main__':
  kel()
  smile()

在上面的attr模块中,定义了两个函数,一个函数为kel,另外一个函数为smile,那么我根据字符串kel和smile怎么执行函数呢,就是使用getattr函数,如下所示:

>>> import attr
>>> k = getattr(attr,'kel')
>>> k()
this is a kel function
>>> s = getattr(attr,'smile')
>>> s()
this is a smile function
>>> e = getattr(attr,'errors')
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'errors'

在第一个中,直接导入模块,那么模块就是一个object,从而在getattr根据字符串kel获取到attr中的kel()函数,从而最后进行执行,这里也就实现了,根据字符串的不同,从而执行相应的函数。

2、 使用字典来调用函数

在上面模块的定义不变,但是在调用的时候,可以定义一个字典,根据字典的值来进行执行函数,如下所示:

>>> import attr
>>> d = {'kel':attr.kel,'smile':attr.smile}
>>> d['kel']()
this is a kel function
>>> d['smile']()
this is a smile function

从而可以使用字典值来进行调用函数。

以上两种方法主要就是用来,当传递过来一个字符串的时候,我该如何调用其他函数,那么第一种方法就是使用getattr来进行执行函数;第二种方法就是预先定义一个字典,然后执行字典的值即可。

以上这篇python中根据字符串调用函数的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中enumerate函数用法实例分析
May 20 Python
python数据预处理之将类别数据转换为数值的方法
Jul 05 Python
Python制作豆瓣图片的爬虫
Dec 28 Python
python数据封装json格式数据
Mar 04 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
使用pandas将numpy中的数组数据保存到csv文件的方法
Jun 14 Python
Python3的介绍、安装和命令行的认识(推荐)
Oct 20 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
python+selenium 定位到元素,无法点击的解决方法
Jan 30 Python
Python OpenCV实现鼠标画框效果
Aug 19 Python
使用Pyhton集合set()实现成果查漏的例子
Nov 24 Python
python3通过qq邮箱发送邮件以及附件
May 20 Python
python中函数总结之装饰器闭包详解
Jun 12 #Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 #Python
深入理解python中的闭包和装饰器
Jun 12 #Python
Python编码爬坑指南(必看)
Jun 10 #Python
浅析Python中的for 循环
Jun 09 #Python
Python多层嵌套list的递归处理方法(推荐)
Jun 08 #Python
Python-嵌套列表list的全面解析
Jun 08 #Python
You might like
网页图片延时加载的js代码
2010/04/22 Javascript
网页中可关闭的漂浮窗口实现可自行调节
2013/08/20 Javascript
js简单实现让文本框内容逐个字的显示出来
2013/10/22 Javascript
js单例模式详解实例
2013/11/21 Javascript
jquery.post用法示例代码
2014/01/03 Javascript
HTML页面弹出居中可拖拽的自定义窗口层
2014/05/07 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
node.js cookie-parser 中间件介绍
2016/06/06 Javascript
基于ajax与msmq技术的消息推送功能实现代码
2016/12/26 Javascript
jquery实现input框获取焦点的简单实例
2017/01/26 Javascript
jQuery取得元素标签名称小结(附代码)
2017/08/16 jQuery
jQuery Datatable 多个查询条件自定义提交事件(推荐)
2017/08/24 jQuery
Node.js使用Angular简单示例
2018/05/11 Javascript
在vue中使用公共过滤器filter的方法
2018/06/26 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
Python性能优化技巧
2015/03/09 Python
使用Mixin设计模式进行Python编程的方法讲解
2016/06/21 Python
Python常见异常分类与处理方法
2017/06/04 Python
Python实现字典按key或者value进行排序操作示例【sorted】
2019/05/03 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
python3+PyQt5 自定义窗口部件--使用窗口部件样式表的方法
2019/06/26 Python
Python3.0 实现决策树算法的流程
2019/08/08 Python
基于Python fminunc 的替代方法
2020/02/29 Python
Python函数基本使用原理详解
2020/03/19 Python
浅谈pytorch中的BN层的注意事项
2020/06/23 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
CSS3实现粒子旋转伸缩加载动画
2016/04/22 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
庆七一活动方案
2014/01/25 职场文书
《小熊住山洞》教学反思
2014/02/21 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
行政前台岗位职责
2015/04/16 职场文书
写给媳妇的检讨书
2015/05/06 职场文书