我想建立一些動態的代碼,分析一個文本文件,從模塊頂部的導入命名的對象...現在我遍歷sys._getframe(0)
中的所有項目找到f_globals
。是否有更多pythonic方式找到f_globals
?Pythonic的方式來找到全球命名空間導入名稱
import re
import sys
import inspect
## Import all Object models below
from Models.Network.Address import MacAddress as _MacAddress
from Models.Network.Address import Ipv4Address as _Ipv4Address
class Objects(object):
"Define a structure for device configuration objects"
def __init__(self):
"Initialize the Objects class, load appropriate objects"
self.objects = dict()
for name, members in inspect.getmembers(sys._getframe(0)):
if name == 'f_globals':
for modname, ref in members.items():
if re.search('^_[A-Za-z]', modname):
self.objects[modname] = ref
return
是的,就是這麼簡單。謝謝。 – 2011-04-25 20:23:11