Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
生活随笔
收集整理的這篇文章主要介紹了
Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python語言學習:基于python五種方法實現使用某函數名【func_01】的字符串格式('func_01')來調用該函數【func_01】執行功能
?
?
目錄
問題提出
代碼五種設計思路
T1方法:eval()
T2方法: locals() 和 globals()
T3方法:
T4、方法
T5方法
綜合
?
?
?
問題提出
如何將提取得到的字符串(該字符串且等于函數名),此時該函數名是字符串格式,如何用作函數實現其功能?
?
?
代碼五種設計思路
T1方法:eval()
通常用來執行一個字符串表達式,并返回表達式的值。在這里它將字符串轉換成對應的函數。eval() 功能強大但是比較危險(eval is evil),不建議使用。
print('eval() 通常用來執行一個字符串表達式,并返回表達式的值。在這里它將字符串轉換成對應的函數。') for func in func_list:eval(func)()?
T2方法: locals() 和 globals()
是python的兩個內置函數,通過它們可以一字典的方式訪問局部和全局變量。
print('locals() 和 globals() 是python的兩個內置函數,通過它們可以一字典的方式訪問局部和全局變量。') for func in func_list:locals()[func]() for func in func_list:globals()[func]()
? ??
T3方法:
print('methodcaller方法')
class Foo:def do_foo(self):print('執行do_foo()函數')def do_bar(self):print('執行do_bar()函數')f = Foo()
from operator import methodcaller
methodcaller('do_foo')(f)
?
T4、方法
print('globals().get') globals().get('foo')
? ??
? ??
T5方法
getattr() 是 python 的內建函數,getattr(object,name) 就相當于 object.name,但是這里 name 可以為變量。
print('getattr()方法') import foo getattr(foo, 'bar')()??
綜合
def foo(): print("foo")def bar():print("bar") func_list = ["foo","bar"]#T1方法:eval() 通常用來執行一個字符串表達式,并返回表達式的值。在這里它將字符串轉換成對應的函數。eval() 功能強大但是比較危險(eval is evil),不建議使用。 print('eval() 通常用來執行一個字符串表達式,并返回表達式的值。在這里它將字符串轉換成對應的函數。') for func in func_list:eval(func)()#T2方法: locals() 和 globals() 是python的兩個內置函數,通過它們可以一字典的方式訪問局部和全局變量。 print('locals() 和 globals() 是python的兩個內置函數,通過它們可以一字典的方式訪問局部和全局變量。') for func in func_list:locals()[func]() for func in func_list:globals()[func]()#T3方法: print('methodcaller方法') class Foo:def do_foo(self):print('執行do_foo()函數')def do_bar(self):print('執行do_bar()函數')f = Foo() from operator import methodcaller methodcaller('do_foo')(f)#T4、方法: print('globals().get') globals().get('foo')#T5方法: getattr() 是 python 的內建函數,getattr(object,name) 就相當于 object.name,但是這里 name 可以為變量。 print('getattr()方法') import foo getattr(foo, 'bar')()總結
以上是生活随笔為你收集整理的Python语言学习:基于python五种方法实现使用某函数名【func_01】的字符串格式('func_01')来调用该函数【func_01】执行功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DL之DNN优化技术:DNN中抑制过拟合
- 下一篇: DL之RetinaNet:RetinaN