我有这个简单的Python 3脚本
def myfunction(current):
current += 1
myvalue = 'Test Value'
print(current)
return current
current = 1
while ( current < 10 ):
current = myfunction(current)
它工作得很好,但我试图在while循环中使用myvalue变量。如何访问变量?
答案 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'}