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 returned when the attribute doesn't
exist; without it, an exception is raised in that case.
解釋的很抽象 告訴我這個函式的作用相當於是
object.name
試了一下getattr(object,name)確實和object.name是一樣的功能.只不過這裡可以把name作為乙個變數去處理
書上的例子很好的說明了這個函式的功用
使用getattr可以輕鬆實現工廠模式。
例:乙個模組支援html、text、xml等格式的列印,根據傳入的formate引數的不同,呼叫不同的函式實現幾種格式的輸出12
34import
statsout
def
output(data,
format
=
"text"
):
output_function
=
getattr
(statsout,
"output_%s"
%
format
)
return
output_function(data)
Python中的getattr 函式 一
python的getattr內建函式簡直太強大了,它提供了從函式名字串到函式引用的對映,實現機制為字串和函式的松耦合。這有什麼好處呢?例如有乙個功能需求是溫度轉換,即通過得到的感測器型別呼叫相應的溫度轉換函式,若是用python的話那就相當容易和簡潔了,例如tempconvert模組定義了光纖感測器...
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 貌似還可以實現工廠模式...