在模块中提供经过验证的globals()函数

时间:2015-12-08 12:26:08

标签: python

我想获得过滤全局变量,并在函数中提供它们:

def my_globals():
    return [y for x, y in globals().items() if not '__' in x]

问题是,当我把它放在一个模块中时,它不会使用" global"范围,而是模块的范围。

我想允许用户专门访问当前"已验证的"全局。我怎么能这样做?

1 个答案:

答案 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)
相关问题