Acessar uma variável de função fora da função sem usar "global"
Eu estou tentando acessar uma variável de função local fora da função em Python. Então, por exemplo,
bye = ''
def hi():
global bye
something
something
bye = 5
sigh = 10
hi()
print bye
O acima funciona bem como deveria. Desde que eu quero descobrir se eu posso acessarbye
lado de forahi()
sem utilizarglobal bye
, Eu tentei:
def hi():
something
something
bye = 5
sigh = 10
return
hi()
x = hi()
print x.bye
O acima dáAttributeError: 'NoneType' object has no attribute 'bye'
.
Então eu tentei:
def hi():
something
something
bye = 5
sigh = 10
return bye
hi()
x = hi()
print x.bye
Desta vez, não dá nem um erro.
Então, existe uma maneira de acessar uma variável de função local (bye
) fora da sua função (hi()
) sem usar globais e sem imprimir variáveissigh
também? (A questão foi editada para incluirsigh
depois do comentário de @hcwhsa abaixo.