在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中根据字符串调用函数的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
相关推荐:
asp.net 转换人民币大小金额
Javascript showModalDialog两个窗体之间传值
C# 连接Access数据时总报找不到dbo.mdb的问题
sql中all,any,some用法
JavaScript 对象成员的可见性说明
javaScript parseInt字符转化为数字函数使用小结
把html页面的部分内容保存成新的html文件的jquery代码
IE FF OPERA都可用的弹出层实现代码
VBS 脚本不能运行 提示Windows无法访问指定设备路径或文件
JavaScript 定义function的三种方式小结
PHP 正则表达式函数库(两套)
PPK 谈 JavaScript 的 this 关键字 [翻译]
Python 开发Activex组件方法
js css样式操作代码(批量操作)
JQuery toggle使用分析
csdn 论坛技术区平均给分功能
Linux下Squid配置详解 Squid代理服务器配置第1/3页
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Flex3 界面布局教程 第二篇
JavaScript 常用函数库详解
C# 获取程序集版本、文件版本
IIS6中配置PHP的方法 200911
sql 时间函数 整理的比较全了
JQuery 图片延迟加载并等比缩放插件
Python 第一步 hello world
Oracle 创建用户及数据表的方法
Oracle 分析函数RANK(),ROW_NUMBER(),LAG()等的使用方法
Firebug 字幕文件JSON地址获取代码
防盗链接ASP函数
javascript 面向对象,实现namespace,class,继承,重载
百度留言本js 大家可以参考下
jQuery 使用手册(三)
Jquery 学习笔记(一)
随日期每天自动变换的文本的js特效
小学生作文妙语 开怀大笑作品
Python+Django在windows下的开发环境配置图解
JavaScript OOP类与继承
javascript 日期常用的方法
让iframe子窗体取父窗体地址栏参数(querystring)
JavaScript 组件之旅(四):测试 JavaScript 组件
Javascript实现的CSS代码高亮显示
flash 得到自身url参数的代码
js apply/call/caller/callee/bind使用方法与区别分析
extjs DataReader、JsonReader、XmlReader的构造方法
win2003 iis 不支持请求(iis iso)的解决方法分析
实用的层滑开js实现代码
jquery 可排列的表实现代码
解决jquery .ajax 在IE下卡死问题的解决方法
JQuery困惑—包装集 DOM节点
管理员需要参考的当服务器被入侵后的紧急补救方法