python的getattr內建函式簡直太強大了,它提供了從函式名字串到函式引用的對映,實現機制為字串和函式的松耦合。這有什麼好處呢?
例如有乙個功能需求是溫度轉換,即通過得到的感測器型別呼叫相應的溫度轉換函式,若是用python的話那就相當容易和簡潔了,例如tempconvert模組定義了光纖感測器和無線感測器溫度轉換函式為convert_fiber和convert_wireless。
import tempconvert
def convert(primaldata, sensortype="fiber"):
processfunc = getattr(tempconvert, "convert_%s" % sensortype)
return processfunc(primaldata)
這樣每新增一種型別的感測器,只要在temconvert模組中定義乙個相應的轉換函式就行了。相較之下c/c++就麻煩許多了,無法從字串獲取到該函式指標/引用。
python中的getattr函式
getattr object,name default value get a named attribute from an object getattr x,y is equivalent to x.y.when a default argument is given,it is returne...
Python 反射getattr的應用
login.py 根據字串的形式去某個模組中尋找東西 getattr 根據字串的形式去某個模組中判斷東西是否存在 hasattr 根據字串的形式去某個模組中設定東西 setattr 根據字串的形式去某個模組中刪除東西 delattr 通過 import 匯入目標模組並且放在乙個物件中 f impor...
python 內建函式getattr
在工作中遇到這個函式,沒想起來再哪碰到過,一找讓我驚訝啦,這個函式好強大。下面簡單介紹一起其用法。1 獲取類變數 class a a 1 getattr a,a 1 2 獲取類函式 class b def funb print abc getattr b,funb abc 3 貌似還可以實現工廠模式...