在另一个函数中获取局部变量的值

时间:2014-11-21 17:03:28

标签: python

我正在修补Python。我有两个功能。第一个调用第二个,从第二个开始我试图在第一个中获取局部变量的值,如下所示:

def b():
    local_var = 8
    a()

def a():
    #get b::local_var here?

我知道在python中可以打印出堆栈,但我想知道访问这些函数中的变量和内存。 这甚至可能吗?

2 个答案:

答案 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

1

你传递了变量

2

创建了一个新变量LV并将local_var值赋给LV