是否有任何参考指向当前范围,我查找了很多文章,但找不到答案,例如我想在当前范围内打印每个var的内容
for x in list(locals()):
print(x)
Run Code Online (Sandbox Code Playgroud)
但只给我这个,var的名字
__builtins__
__file__
__package__
__cached__
__name__
__doc__
Run Code Online (Sandbox Code Playgroud)
我不想要这样的代码
print(__builtins__)
print(__file__)
print(__package__)
print(__cached__)
print(__name__)
print(__doc__)
....
Run Code Online (Sandbox Code Playgroud)
要获取这些值,您可以使用:
for symbol, value in locals().items():
print symbol, value
Run Code Online (Sandbox Code Playgroud)
locals() 给你一个字典。迭代字典可以得到它的键。要获取(键,值)对的列表,请使用 items 方法。
大规模的过度杀伤...在函数中包装过滤和打印本地命名空间.
我不推荐这个.我发布它主要是为了表明它可以完成并获得评论.
import inspect
def print_local_namespace():
ns = inspect.stack()[1][0].f_locals
for k, v in ns.iteritems():
if not k.startswith('__'):
print '{0} : {1}'.format(k, v)
def test(a, b):
c = 'Freely'
print_local_namespace()
return a + b + c
test('I', 'P')
Run Code Online (Sandbox Code Playgroud)