在工作中遇到這個函式,沒想起來再哪碰到過,一找讓我驚訝啦,這個函式好強大。下面簡單介紹一起其用法。
1、獲取類變數
class a:
a = 1
getattr(a,'a') == 1
2、 獲取類函式
class b:
def funb():
print 'abc'
getattr(b,'funb')
>'abc'
3、貌似還可以實現工廠模式(例子來自網上,沒驗證過)
import statsout
def output(data, format="text"):
output_function = getattr(statsout, "output_%s" % format)
return output_function(data)
除了getattr外,還有 setattr | delattr | hasattr 等幾個函式,作用與名稱一致
class a:
def stepone(**kargs):
pass
def steptwo(**kargs):
pass
def stepthree(**kargs):
pass
def stepfour(**kargs):
pass
.....
class b:
default_actions=(('stepone",{}),('steptwo",{}),('stepthree",{}),('stepfour",{}),)
def run(**kargs):
actions = kargs.get('actions', default_actions)
for act,karg in actions:
getattr(self,act)(**karg)
這樣只要定義乙個action (名稱,)就能夠傳遞到class a的對應函式中執行,還能夠順序執行
python重寫內建函式 python 內建函式
說明 zip 函式用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的列表。如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 號操作符,可以將元組解壓為列表。語法 zip iterable1,iterable2,引數 iterable 乙個或多...
python內建函式簡稱 Python內建函式詳解
此文參考python文件,然後結合自己的理解,寫下來,一方面方便自己,讓自己好好學習,順便回憶回憶 另一方面,讓喜歡的盆友也參考一下。經查詢,3.6版本總共有68個內建函式,主要分類如下 數 算 7個 型別轉換 24個 序列操作 8個 物件操作 9個 反射操作 8個 變數操作 2個 互動操作 2個 ...
python內建函式使用 python內建函式使用
eval函式執行python表示式,有返回值 eval 1 2 3 4 5 exec函式執行的是python語句,沒有返回值 exec print 123 將字串型別的 編碼.物件能夠通過exec語句來執行或者eval 進行求值,c只是編譯,不執行 code for i in range 10 pr...