Zugriff auf eine Funktionsvariable außerhalb der Funktion ohne Verwendung von "global"
Ich versuche, auf eine lokale Funktionsvariable außerhalb der Funktion in Python zuzugreifen. So zum Beispiel
bye = ''
def hi():
global bye
something
something
bye = 5
sigh = 10
hi()
print bye
Das oben genannte funktioniert gut, wie es sollte. Da möchte ich herausfinden, ob ich darauf zugreifen kannbye
draußenhi()
ohne zu benutzenglobal bye
, Ich habe es versucht:
def hi():
something
something
bye = 5
sigh = 10
return
hi()
x = hi()
print x.bye
Das obige gibtAttributeError: 'NoneType' object has no attribute 'bye'
.
Dann habe ich versucht:
def hi():
something
something
bye = 5
sigh = 10
return bye
hi()
x = hi()
print x.bye
Dieses Mal gibt es nicht einmal einen Fehler.
Gibt es also eine Möglichkeit, auf eine lokale Funktionsvariable zuzugreifen (bye
) außerhalb seiner Funktion (hi()
) ohne Verwendung von Globalen und ohne Ausdruck der Variablensigh
auch? (Frage wurde bearbeitet, um einzuschließensigh
nach @hcwhsa 's Kommentar unten.