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 docx库用法示例分析
Feb 16 Python
基于Python新建用户并产生随机密码过程解析
Oct 08 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
使用python执行shell脚本 并动态传参 及subprocess的使用详解
Mar 06 Python
keras模型保存为tensorflow的二进制模型方式
May 25 Python
python实现在线翻译
Jun 18 Python
python软件都是免费的吗
Jun 18 Python
浅谈keras使用预训练模型vgg16分类,损失和准确度不变
Jul 02 Python
Python使用itcaht库实现微信自动收发消息功能
Jul 13 Python
基于python判断字符串括号是否闭合{}[]()
Sep 21 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
Python+OpenCV图像处理——实现轮廓发现
Oct 23 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
使用PHP强制下载PDF文件示例
2014/01/17 PHP
PHP基于接口技术实现简单的多态应用完整实例
2017/04/26 PHP
php上传后台无法收到数据解决方法
2019/10/28 PHP
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
Lua表达式和控制结构学习笔记
2014/12/15 Javascript
生成二维码方法汇总
2014/12/26 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
学习JavaScript设计模式之状态模式
2016/01/08 Javascript
JS中使用apply方法通过不同数量的参数调用函数的方法
2016/05/31 Javascript
javaScript给元素添加多个class的简单实现
2016/07/20 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
jQuery实现的文字逐行向上间歇滚动效果示例
2017/09/06 jQuery
微信小程序实现点击按钮修改文字大小功能【附demo源码下载】
2017/12/06 Javascript
js实现web调用摄像头 js截取视频画面
2019/04/21 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
跟老齐学Python之有容乃大的list(3)
2014/09/15 Python
使用beaker让Facebook的Bottle框架支持session功能
2015/04/23 Python
Python爬虫包BeautifulSoup简介与安装(一)
2018/06/17 Python
使用Python读取二进制文件的实例讲解
2018/07/09 Python
python 杀死自身进程的实现方法
2019/07/01 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
django Layui界面点击弹出对话框并请求逻辑生成分页的动态表格实例
2020/05/12 Python
python怎么对数字进行过滤
2020/07/05 Python
详解python 条件语句和while循环的实例代码
2020/12/28 Python
使用Python封装excel操作指南
2021/01/29 Python
localstorage和sessionstorage使用记录(推荐)
2017/05/23 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
HTML5单选框、复选框、下拉菜单、文本域的实现代码
2020/12/01 HTML / CSS
美国领先的男士和女士内衣购物网站:Freshpair
2019/02/25 全球购物
学院书画协会部门岗位职责
2013/12/01 职场文书
保安的辞职报告怎么写
2014/01/20 职场文书
淘宝客服工作职责
2014/07/11 职场文书
普通党员个人整改措施
2014/10/27 职场文书
本科毕业论文导师评语
2014/12/31 职场文书
2015年爱国卫生工作总结
2015/04/22 职场文书
讲解MySQL增删改操作
2022/05/06 MySQL