作者del680202 (HANA)
看板Python
标题[闲聊] 取得其他module的变数
时间Sat May 18 11:29:10 2013
最近在用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)
1F:推 timTan:不算常见,但很好玩 05/18 12:23
2F:→ uranusjr:我之前有用过 inspect 做过类似的事情, 不过这个比较酷XD 05/18 14:36