Re: [範例] 動態建造函式物件?

看板Python作者 (偷拿程式碼的八卦)時間15年前 (2010/04/22 10:39), 編輯推噓0(002)
留言2則, 1人參與, 最新討論串2/2 (看更多)
※ 引述《tumc (HIHIHI)》之銘言: : 想請問一個功能... : 利用factory函式可建造出動態物件 : 而函式也是物件,那要如何建造成動態物件呢? : ex: : class test(): : def kword(self): pass : if __name__ == '__main__': : t=test() : myword='kword' : 問題: 若要用myword及factory去建造出t.kword()的函式物件 : 那該如何做呢? http://tinyurl.com/yj2o3ot 不過這是runtime object... def get_class( kls ): parts = kls.split('.') module = ".".join(parts[:-1]) m = __import__( module ) for comp in parts[1:]: m = getattr(m, comp) return m >>> D = get_class("datetime.datetime") >>> D <type 'datetime.datetime'> 根據你輸入的名稱弄出那個物件 http://tinyurl.com/2bq2pak 呼叫某個function可以這樣 import foo methodToCall = getattr(foo, 'bar') result = methodToCall() As far as that goes lines 2 and three can be compressed to: result = getattr(foo, 'bar')() 去執行名子叫做 'bar'的function 如果你有興趣可以再去看更深入的... Jerry's Blog: Python run time extend by adding class methods 哇,可以一邊執行一邊變種阿... -- 2008年 台灣國 愛滋感染人數統計 異性性行為女 40 異性性行為男 296 同性性行為男 866 2009年 台灣國 愛滋感染人數統計 異性性行為女 42 異性性行為男 273 同性性行為男 895 詳情請看ptt.cc L_BoyMeetsGi 版 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.74.186.107

04/22 12:14, , 1F
這種變種方式可以不用繼承就修改物件的行為,很方便
04/22 12:14, 1F

04/22 12:14, , 2F
對 Python 來說,這些東西都是用 dict 來實做
04/22 12:14, 2F
文章代碼(AID): #1BpxRb0n (Python)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1BpxRb0n (Python)