【发布时间】:2016-09-25 02:32:22
【问题描述】:
目标:需要在另一个函数中使用局部变量。这在 Python 中可行吗?
我想在其他函数中使用局部变量。因为在我的情况下,我需要使用计数器来查看发生的连接数和释放的连接数/为此我正在维护一个计数器。为了实现这一点,我编写了用于计数的示例代码并在另一个函数中返回局部变量。
如何在test() 函数中打印t 和my_reply?
代码:counter_glob.py
my_test = 0
t = 0
def test():
print("I: ",t)
print("IIIIIIII: ",my_reply)
def my():
global t
reply = foo()
t = reply
print("reply:",reply)
print("ttttt:",t)
def foo():
global my_test
my_test1 = 0
my_test += 1
print my_test1
my_test1 = my_test
my_test += 1
print("my_test:",my_test1)
return my_test1
my()
结果:
> $ python counter_glob.py
0
('my_test:', 1)
('reply:', 1)
('ttttt:', 1)
【问题讨论】:
-
不,你不能,这就是“本地”的意思。除此之外,您不会在代码中的任何位置定义任何类型的名为
my_reply的变量。 -
在示例代码中,我有一个我的函数,在我的函数中我将回复分配给全局变量。当我在我的函数中打印全局变量时,即 t 。印刷值符合预期。但我不确定为什么在测试功能中它不打印?因为 t 在我的函数中使用回复进行了更新。
-
在函数
my()中,您将值分配给名为reply的局部变量,然后将其分配给名为t的全局变量。在test()函数中,您引用了全局变量t和另一个名为my_reply的函数,它尚未在任何地方定义。my_reply不是另一个函数中局部变量reply的另一个名称。你不能那样做。您可以在my()中创建一个函数属性,并在test()中使用my answer 中显示的技术访问另一个问题。这将允许您定义my.reply。
标签: python python-2.7 python-3.x