我基本上想要像调用函数时的字典一样扩展当前范围。
我记得在某个地方看到过这个,但我不记得在哪里或怎么做。
这是一个简单的例子
def bar(a, b, c, d, e, f):
pass
def foo(a, b, c, d, e, f):
# Instead of doing this
bar(a, b, c, d, e, f)
# or
bar(a=a, b=b, c=c, d=d, e=e, f=f)
# I'd like to do this
bar(**local_scope)
我想象事情还是可以做到这一点?
答案 0 :(得分:6)
您可以使用locals()
(或globals()
,具体取决于您的需要),它会返回将变量名称映射到值的字典。
bar(**locals())
答案 1 :(得分:3)
如果foo是这样编写的
def foo(**kwargs):
bar(**kwargs)
除了你发布的其他两个例子更好,扩展所有当地人是一个坏主意。