我想获得过滤全局变量,并在函数中提供它们:
def my_globals():
return [y for x, y in globals().items() if not '__' in x]
问题是,当我把它放在一个模块中时,它不会使用" global"范围,而是模块的范围。
我想允许用户专门访问当前"已验证的"全局。我怎么能这样做?
答案 0 :(得分:0)
如果要使用另一个模块的全局变量,则将其作为参数传递。 E.g:
def my_globals(g):
return [y for x, y in g.items() if not '__' in x]
然后这样称呼:
g = my_globals(globals())
获取来电者框架:
import inspect
caller_frame = inspect.currentframe().f_back
要在调用堆栈中返回更多帧,请在帧上重复使用f_back。获取框架的模块:
inspect.getmodule(frame_object)