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来进行执行函数;第二种方法就是预先定义一个字典,然后执行字典的值即可。
相关推荐
夜斗不是神 2020-11-17
huavhuahua 2020-11-20
Yasin 2020-11-16
xiaoseyihe 2020-11-16
千锋 2020-11-15
diyanpython 2020-11-12
chunjiekid 2020-11-10
wordmhg 2020-11-06
YENCSDN 2020-11-17
lsjweiyi 2020-11-17
houmenghu 2020-11-17
Erick 2020-11-17
HeyShHeyou 2020-11-17
以梦为马不负韶华 2020-10-20
lhtzbj 2020-11-17
pythonjw 2020-11-17
dingwun 2020-11-16
lhxxhl 2020-11-16