Greifen Sie auf eine Funktionsvariable außerhalb der Funktion zu, ohne 'global' zu verwenden

Ich versuche, Zugriff auf eine lokale variable, Funktion außerhalb der Funktion in Python. So, zum Beispiel,

bye = ''
def hi():
    global bye
    something
    something
    bye = 5
    sigh = 10

hi()
print bye

Den oben funktioniert wie es sollte. Da möchte ich herausfinden, ob ich zugreifen kann bye außerhalb hi() ohne Verwendung global bye habe ich versucht:

def hi():
    something
    something
    bye = 5 
    sigh = 10
    return

hi()
x = hi()
print x.bye 

Den oben genannten gibt AttributeError: '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 ist es nicht sogar ein Fehler.

So, gibt es eine Möglichkeit, den Zugriff auf eine lokale variable, Funktion (bye) außerhalb Ihrer Funktion (hi()) ohne Verwendung von globals und ohne Druck von Variablen sigh? (Frage wurde bearbeitet, gehören sigh nach @hcwhsa 's Kommentar unten.

InformationsquelleAutor der Frage user2480526 | 2013-10-11

Schreibe einen Kommentar