我想知道如何访问for循环中的局部变量并在另一个函数中使用该变量。这是我的问题的一个非常简单的例子:
def function():
i = 0
z = 2
for i in range(0,5):
x = i + z
print "x value is:",
print x,
print "and i value is:",
print i
这是函数的输出:
x value is: 2 and i value is: 0
x value is: 3 and i value is: 1
x value is: 4 and i value is: 2
x value is: 5 and i value is: 3
x value is: 6 and i value is: 4
最重要的是我无法修改变量i或变量z而我使用python 2.7
如果我简化了我的问题,我希望有类似的东西,但做得好:
def function():
i = 0
z = 2
for i in range(0,5):
x = i + z
if (i==3):
print x #x value when i = 3
else:
#something
我尝试通过调用它functionA.x
来访问变量x,但是它返回x已经拥有的最后一个值,并且我有兴趣知道它的值取决于变量i。
我怎样才能以简单的方式做到这一点? 感谢。
答案 0 :(得分:0)
为什么不这样做:
def function():
i = 0
z = 2
for i in range(0,5):
x = i + z
if (i==3):
print x #x value when i = 3
else:
#something
()的函数 在任何情况下,只有在首先调用函数时,才允许您在其他地方访问函数变量:
def function():
i = 0 # this is redundant, python generates a list with range and the variable 'i' below takes on each value in that list.
z = 2
# something
# something
for i in range(0,5):
function.x = i + z
function.i = i
function()
print function.i
##Below will never execute and print because the value of i is 4 always because the for loop as interated to its last value
if (function.i==3):
print function.x
else:
#something
另一个选择是在你的函数中使用return