这个问题可以用一个简单的例子来说明:mainline.py
调用prettyprint.py
中的一个函数:
# in mainline.py
from prettyprint import prettyprint
array = list('abc')
prettyprint('array', {**globals(), **locals()})
# in prettyprint.py
def prettyprint(codestring, env):
print( eval(codestring, env) )
问题是,我可以在def prettyprint
中做任何事情来让prettyprint
隐式收集呼叫者的范围信息{**globals(), **locals()}
,以便:
我不必每次都打{**globals(), **locals()}
prettyprint
。我将一直收集。
在我的mainline.py
中,只需键入以下内容即可简化对prettyprint
的调用
prettyprint('array')