while循环中的Python访问变量

时间:2016-04-26 08:08:54

标签: python

我有这个简单的Python 3脚本

def myfunction(current):
    current += 1
    myvalue = 'Test Value'
    print(current)
    return current

current = 1
while ( current < 10 ):
    current = myfunction(current)

它工作得很好,但我试图在while循环中使用myvalue变量。如何访问变量?

5 个答案:

答案 0 :(得分:7)

如果您想使用它,您必须返回myvalue

def myfunction(current):
    current += 1
    myvalue = 'Test Value'
    print(current)
    return current, myvalue

current = 1
while ( current < 10 ):
    current, myvalue = myfunction(current)
    print(myvalue)

答案 1 :(得分:4)

您可以从函数

返回多个变量

尝试使用以下代码:

def myfunction(current):
    current += 1
    myvalue = 'Test Value'
    print(current)
    return current, myvalue

current = 1
while ( current < 10 ):
    current, myvalue = myfunction(current)

答案 2 :(得分:3)

myvalue变量是方法myfunction的本地变量。您无法在该方法之外访问它。

你可以

  • 使用全局变量或
  • myfunction
  • 返回值

答案 3 :(得分:1)

你有两种方式:

1:使变量成为全局:

myvalue = 'initvalue'

def myfunction(current):
    global myvalue 
    current += 1
    myvalue = 'Test Value'
    print(current)
    return current

current = 1
while ( current < 10 ):
    current = myfunction(current)

2:从函数函数中返回多个变量

def myfunction(current):
    current += 1
    myvalue = 'Test Value'
    print(current)
    return current, myvalue

current = 1
while ( current < 10 ):
    current, myvalue = myfunction(current)

答案 4 :(得分:1)

如果您希望函数内部的所有值具有相同的标识,您也可以尝试这样做(但确保您没有在外面使用相同的变量名称,这有点破坏了目的)

def myfunction(current):
    current += 1
    myvalue = 'Test Value'
    return locals()

应该会给你一个变量字典。 print myfunction(1)的输出将为

{'current': 2, 'myvalue': 'Test Value'}