调用它之后是否可以从另一个函数中获取局部变量并将它们设置为全局?
让我说我有类似
的东西@setGlobals
def setup():
width = 600
height = 400
我想获取这些变量并将其设置为全局而不使用global ...
我知道我可以使用像globals().update(locals())
这样的东西
在函数内部
或者将它放到一个对象上并使用self.width and self.height
但是有没有办法拥有像
这样的功能def setGlobals(func):
def weapper(*args, **kwargs):
func(...)
#globals().update(func.locals())
# returns {'width':600, 'height':400}
由于
答案 0 :(得分:3)
这种能力从根本上说是不合理的。想象一下:
def f(x):
y=x*2
[f(1),f(2)]
getLocals(f) # is y 2 or 4?
局部变量值是函数的特定调用的一个方面,而不是函数本身。