我想达到的目标是:Python 3如何存储局部变量?
def foo(self):
i = 4
self.bar(__something_which_holds_foo_variables__)
print(i) # prints 8
print(j) # prints 2
def bar(self, vars):
vars.j = 2
vars.i = vars.i * vars.j
访问从另一个方法的方法的所有局部变量。
使用嵌套方法和nonlocal
变量不是一个选项,因为foo
和bar
可能在不同的模块中。 通过名称传递变量也不是一个选项,因为bar()
可能会产生其他变量,我想稍后将其用作foo()
中的当地人。此外,潜在bar()
可能会使用很多来自foo()
的变量。
是否有可能实现这一点,以及为什么这样的想法可能是好还是坏?
你对'self'的使用意味着你正在使用'class' ......如果是这样的话 - 你应该只存储所有方法在类的实例中共同的东西...... –
在上面的例子中,是的。但我明确指出,'foo'和'bar'可能在不同的模块中。无论如何,我用不同的方式解决了这个问题 –