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.

questionAnswers(5)

yourAnswerToTheQuestion