Python:在另一个函数中使用局部变量

时间:2017-11-23 01:55:04

标签: python python-2.7 scope local-variables

我想知道如何访问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。

我怎样才能以简单的方式做到这一点? 感谢。

1 个答案:

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