[閒聊] 取得其他module的變數
最近在用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
05/18 14:36, 2F