python 內建函式getattr

2021-06-29 05:44:36 字數 1136 閱讀 3664

在工作中遇到這個函式,沒想起來再哪碰到過,一找讓我驚訝啦,這個函式好強大。下面簡單介紹一起其用法。

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...