2016-04-10 15 views
-3

Ich muss machen, um auf Variablen von einer anderen Funktion im Programm zugreifen zu können. Das ist nichts Großartiges in Bezug auf die Programmierung, aber es ist etwas, das ich wissen muss, um mehr Wissen aufzubauen.Zugriff auf Variablen in einer anderen Funktion

def s(): 
    v = 6 + 4 
    a() 
    return v 

def a(): 
    ace = v + 4 
    print(ace) 

s() 
+0

In '' s() '' haben Sie vermutlich die Anweisungen '' return v'' und '' a() '' getauscht. Wie Sie es jetzt haben, wird das '' a() '' nicht aufgerufen, da das '' s() '' vor dem Aufruf zurückkehrt. – zegkljan

+0

Was versuchst du zu tun? Warum kommst du zurück, bevor du "a" in "s" nennst? – styvane

Antwort

0

Wenn Sie das eine aufrufen Funktion innerhalb einer anderen Funktion dann übergeben Sie einfach Ihre benötigte Variable als Parameter! Sie haben auch eine Rückkehr innerhalb s, die Ihr Programm zu Rückkehr vor der Ausführung ein verursachen würde. Ex ...

def s(): 
    v = 6 + 4 
    a(v) 

def a(v): 
    ace = v + 4 
    print(ace) 

s() 

Wenn Sie eine Rückkehr verwenden wollten, dann könnten Sie eine Methode als Parameter eines anderen berufen. Dies würde es Ihnen ermöglichen, beide Methoden unabhängig voneinander zu verwenden, aber es kann sehr unordentlich werden!

def s(): 
    v = 6 + 4 
    return v 

def a(v): 
    ace = v + 4 
    print(ace) 

a(s()) 

Viel Glück und hoffe das hilft !!

+0

danke kann ich mehrere Variablen entlang Funktionen wie def a (v, Wort, Position) usw. übergeben? –

+0

Ja, Sie können so viele Variablen an eine Funktion übergeben, wie Sie angeben, dass für diese Funktion die gleiche Anzahl von Parametern gilt. Dies ändert sich, wenn Lambdas, * args und ** kwargs verwendet werden, aber lass das für eine andere Zeit! – TheLazyScripter

+0

okay danke für deine hilfe –

0

Unter der Annahme, dass die return v und a() Anrufe in s() unbeabsichtigt vertauscht sind, können Sie die global Anweisung:

def s(): 
    global v 
    v = 6 + 4 
    a() 
    return v 

def a(): 
    ace = v + 4 
    print(ace) 

s() 

Ausgang:

14 
Verwandte Themen