通過同名字符串來調用函數


        相信使用python的各位童鞋,總會有這樣的需求:通過一個同名的字符串來調用一個函數。其他的語言是如何實現,不太清楚。但是python提供一個強大的內建函數getattr(),可以實現這樣的功能。

       getattr()的函數原型爲 getattr(object, str_ name),其返回對象object中名字爲str_name的屬性方法,這個str_name就是一個字符串,返回的就是名爲str_name的函數對象。

       具體可以通過以下兩種方法來實現:

(一)  新建一個test.py文件,在其中定義若干方法test1(),test2()等,另建程序文件main.py,這樣在main.py中

import test

fun1=getattr(test,'test1')
fun1()

fun2=getattr(test,'test2')
fun2()

 

(二) 在程序文件main.py中,建一個類test,getattr通過傳入類的對象,來得到對象的方法

 

class test():
    def test1():
        print 'test1'
    def test2():
        print 'test2'

t=test()
fun1=getattr(t,'test1')
fun1()

fun2=getattr(t,'test2')
fun2()


如此實現。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章