2016-09-16 4 views
1

Ich möchte auf die Testvariable in main von testadder zugreifen, so dass sie 1 zum Test hinzufügt, nachdem testadder in main aufgerufen wurde.Python 3 Variable in Funktion von einer anderen Funktion ändern

Aus irgendeinem Grund kann ich auf diese Weise 1 zu einer Liste hinzufügen, aber keine Variablen. Die nicht lokale Deklaration funktioniert nicht, da die Funktionen nicht eingebettet sind.

Gibt es eine Möglichkeit, dies zu umgehen?

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

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

main() 
+0

Können Sie näher erläutern, was 'test' und' testing' generell sein sollten? Es ist ein bisschen schwierig zu verstehen, was Sie tun möchten. –

Antwort

1

Listen sind änderbar, aber ganze Zahlen nicht. Geben Sie die geänderte Variable zurück und weisen Sie sie erneut zu.

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

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

main() 
+0

Eine weitere Sache. Sag, wenn ich mehr als eine Variable zurückgeben möchte, würde das auch funktionieren? Oder müsste ich es irgendwie aufteilen? – Uninvolved

+0

Ja, 'return a, b' und' a, b = func() ' –

Verwandte Themen