通過同名字串來呼叫函式

2021-06-01 02:17:48 字數 762 閱讀 7704

相信使用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...