Python Aufrufen einer Funktion in eine andere Funktion

Ich lese das Buch Python-Programmierung für die Absolute Beginner von Mike Dawson und ich war erstaunt, eine Frage, die ich hatte, bezüglich der Funktionen.

Beobachten Sie den code unten

def func_1():
    name = input('What is your name?')
def func_2():
    print(name)

func_2()

Ich weiß, dass ich nicht nennen Sie die variable name in die Funktion 2, da es lokal zu der Funktion 1.

Jedoch, warum rufe ich eine Funktion innerhalb einer anderen Funktion, und suchen Sie dann den Wert an die Eingabe des Benutzers als solche weiter unten?

def func_1():
    name = input('What is your name?')
    return name
def func_2():
    user_input = func_1()
    print(user_input)

func_2()
  • Was genau sind Sie verwirrt? Der Aufruf der Funktion oder der returning der Wert an den Aufrufer?
  • Weil Sie return den Wert
  • Aufruf einer Funktion innerhalb einer anderen Funktion.
  • func_1 gibt einen Wert zurück, im zweiten Beispiel, den Sie speichern den Rückgabewert in einer Variablen namens user_input dann drucken.
  • Versuchen Sie return name
  • Ich denke, die Verwirrung ist zu verstehen, scoping, und warum func_1 aufgerufen werden kann, innerhalb func_2 aber name nicht aufgerufen werden kann, innerhalb func_2. Dies ist, abgesehen von dem, was die return verantwortlich ist.
  • Ich bin mir nicht sicher, ob dies auch im Zusammenhang, aber nicht this etwas haben zu tun mit Ihrer Frage? Können Sie klären, was genau ist Ihnen unklar?
  • Sie rufen eine Funktion (input) in eine andere Funktion (func_1) in Ihrem ersten Beispiel.
  • Es ist, weil func_1() ist im globalen Raum. Wenn func_1() definiert waren, in einem anderen Bereich (z.B. innerhalb einer Klasse, einem anderen namespace oder eine Funktion), dann würden Sie nicht in der Lage sein, um es von func_2()
  • Warum all die downvotes? Dies scheint eine klare Frage und eine angemessene mis-Verständnis für einen Anfänger
  • ich danke Ihnen sehr, ich war sehr verwirrt und wusste nicht, was das Buch bezog sich auf! Bitte upvote.

InformationsquelleAutor Dave Smith | 2017-07-14
Schreibe einen Kommentar