相信使用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()
如此實現。
python通過字串來呼叫函式
有時候我們想要通過字串來直接呼叫函式,方便通過輸入的引數來直接控制呼叫的函式 常規操作def function1 print function1 def function2 print function2 def function3 print function3 def call fun by s...
199 c 通過函式名字串呼叫函式
今天寫c的作業時候想起來能不能用函式名字串來呼叫函式 第乙個問題,函式名如何儲存,我們需要用到函式指標 type func type type 該語句宣告了乙個指標func,它指向了乙個函式,這個函式帶有了2個type型引數並返回乙個type的值。p.s.type型別可以被看成是int啊或者是flo...
python 通過方法名字的字串呼叫方法
from lib1 import circle from lib2 import from lib3 import rectangle from operator import methodcaller defget area shape,method name area get area geta...