Python中的getattr 函式 一

2021-06-07 00:49:10 字數 507 閱讀 5115

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 貌似還可以實現工廠模式...