Das kann nicht, es sei denn, fib
gibt irgendwie inner
zurück. inner
ist im Wesentlichen eine lokale Variable innerhalb des Bereichs von fib
, und Sie können nicht von außerhalb auf die Lokale einer Funktion zugreifen. (Das wäre nicht einmal sinnvoll, da die Locals nicht existieren, außer wenn die Funktion läuft. Denken Sie darüber nach - wäre es sinnvoll, von außerhalb der Funktion auf fib
's c
Variable zuzugreifen?)
Verwenden Sie Folgendes nicht.
%Vor%Man kann es einfach erkennen, wenn man es anschaut, dass es nicht wirklich Python ist, und in diesem Fall nennt es nicht wirklich die "innere" Funktion selbst, es schafft einfach eine neue Funktion wie diese. Ich habe mich auch nicht darum gekümmert, die Globals "korrekt" zu setzen, denn das ist eine schreckliche Sache, die man überhaupt machen kann.
[Ich sollte erwähnen, dass der Punkt des obigen ist zu beachten, dass die Idee, dass Sie Interna von außen nicht zugreifen können, nicht streng wahr ist, obwohl es fast nie eine gute Idee ist. Ausnahmen sind Code-Inspektionen auf Interpreter-Ebene, etc.]
Unrein! Unrein!
Wie von einigen anderen Lesern gesagt, ist es ein Problem des Umfangs. FWIW, das funktioniert, indem man die innere Funktion zurückgibt:
%Vor%Hier ist eine gute Einführung in pythons Scoping:
Tags und Links python