2016-09-16 170 views
1

我想從testadder訪問main中的測試變量,以便在testadder在main中被調用後它將添加1到測試中。Python 3從另一個函數中改變函數的變量

出於某種原因,我可以用這種方法將1添加到列表中,但不包含變量。非本地聲明不起作用,因爲函數不是依賴的。

有沒有辦法解決這個問題?

def testadder(test, testing): 
    test.append(1) 
    testing += 1 

def main(): 
    test = [] 
    testing = 1 
    testadder(test, testing) 
    print(test, testing) 

main() 
+0

你能詳細說明'test'和'testing'應該是什麼樣子嗎?理解你想做什麼有點困難。 –

回答

1

列表是可變的,但整數不是。返回修改的變量並重新分配它。

def testadder(test, testing): 
    test.append(1) 
    return testing + 1 

def main(): 
    test = [] 
    testing = 1 
    testing = testadder(test, testing) 
    print(test, testing) 

main() 
+0

還有一件事。假如我想要返回多個變量,那麼它是否也可以工作?或者我需要以某種方式拆分它? – Uninvolved

+0

是的,'返回a,b'和'a,b = func()' –

相關問題