python中根据字符串调⽤函数的实现⽅法
在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中根据字符串调⽤函数的实现⽅法就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论