python中根据字符串调用函数

原创 2016年05月30日 14:13:36

在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中用字符串来调用函数

参考: http://blog.sina.com.cn/s/blog_76e94d210100w1bl.html https://taizilongxu.gitbooks.io/stackover...

根据字符串名称动态调用Python的函数和对象方法

#!/usr/bin/python #coding: UTF-8 """ @author: CaiKnife 根据函数名称动态调用 """ def do_foo(): print "foo...
  • caiknife
  • caiknife
  • 2013年01月28日 10:02
  • 21388

通过同名字符串来调用函数<python>

相信使用python的各位童鞋,总会有这样的需求:通过一个同名的字符串来调用一个函数。其他的语言是如何实现,不太清楚。但是python提供一个强大的内建函数getattr(),可以实现这样的功能。 ...

Python中的字符串执行函数

exec和eval语句  exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python代码的字符串,然后使用exec语句执行这些语句。 exec(...

Python 执行字符串表达式函数(eval exec execfile)

仔细研读后学习了三个函数: eval:计算字符串中的表达式 exec:执行字符串中的语句 execfile:用来执行一个文件 需注意的是,exec是一个语句,而eval()和execfil...

C++ 通过字符串调用函数

  • 2014年03月13日 23:23
  • 1KB
  • 下载

java反射,获取类对象所有成员变量,从字符串调用函数

java反射,获取类对象所有成员变量,从字符串调用函数

Python定义与调用函数、默认参数操作实例说明

#coding=utf8 ''' Python中的函数使用小括号调用。函数在调用之前必须先定义。 如果函数中没有return语句,就会自动返回None对象。 Python是通过引用调用的。如果函数内...

廖雪峰python教程阅读之调用函数

Python内置了很多有用的函数,我们可以直接调用。要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。可以直接从Python的官方网站查看文档 也可以在交互式命令行通...

python中调用函数

python中有内置的函数,我们可以直接调用来使用。调用函数需要写函数名和参数。 一、abs():求绝对值的函数,这个函数需要传一个整数或者浮点数作为参数。 如果参数个数传递错误,函数会报错:需要...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:python中根据字符串调用函数
举报原因:
原因补充:

(最多只允许输入30个字)