[閒聊] 取得其他module的變數

看板Python作者 (HANA)時間11年前 (2013/05/18 11:29), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
最近在用PLY的時候 很好奇他怎麼取得我自定義的一些變數 不用傳值給他的物件 只要呼叫他一個function就會把我定義的特定物件拿去用 看了一下source code 看到他的做法覺得很新奇 def get_caller_module_dict(levels): try: raise RuntimeError except RuntimeError: e,b,t = sys.exc_info() f = t.tb_frame while levels > 0: f = f.f_back levels -= 1 ldict = f.f_globals.copy() ldict.update(f.f_locals) 似乎是使用stack tracker的方式抓入runtime的資訊 我本身不常寫python,大概都只是拿來寫一些tool而已 對於這種程式設計法感到納悶 想問問這種做法在python很常見嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.169.100.25 ※ 編輯: del680202 來自: 1.169.100.25 (05/18 11:31)

05/18 12:23, , 1F
不算常見,但很好玩
05/18 12:23, 1F

05/18 14:36, , 2F
我之前有用過 inspect 做過類似的事情, 不過這個比較酷XD
05/18 14:36, 2F
文章代碼(AID): #1HblM851 (Python)