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.

Antworten auf die Frage(5)

Ihre Antwort auf die Frage