我正在修补Python。我有两个功能。第一个调用第二个,从第二个开始我试图在第一个中获取局部变量的值,如下所示:
def b():
local_var = 8
a()
def a():
#get b::local_var here?
我知道在python中可以打印出堆栈,但我想知道访问这些函数中的变量和内存。 这甚至可能吗?
答案 0 :(得分:0)
在函数体内定义的变量具有局部范围,而在外部定义的变量具有全局范围。
这意味着局部变量只能在声明它们的函数内部访问,而全局变量可以通过所有函数在整个程序体中访问。当你调用一个函数时,在它内部声明的变量就会进入范围。
所以在这种情况下你可以使用2种方式: 1.定义一个全局变量:
>>> def b():
... global local_var
... local_var=8
... a()
...
>>> def a():
... print local_var
...
>>> a
8
2.将a()
中的变量作为其参数:
>>> def b():
... local_var=8
... a(local_var)
...
>>> def a(arg):
... print arg
...
>>> a
8
答案 1 :(得分:0)
是的,你可以,只需传递函数中的变量
def b():
local_var = 8
a(local_var) #1
def a(LV): #2
print LV
你传递了变量
创建了一个新变量LV并将local_var值赋给LV