variável inteira única python entre a função

Existe uma maneira de trocar entre as funções filho e pai uma variável que não é uma lista?

#parent

list=[0]*1
singlevalue = 0

#child - 0
def test():
    list[0]= list[0]+1
    return list

#parent
test() #>>1 
test() #>>2


#child - 1
def test():
    singlevalue = singlevalue +1
    return singlevalue

#parent
test() >>
#    singlevalue = singlevalue +1
#UnboundLocalError: local variable 'singlevalue' referenced before assignment

O exemplo mostra que com a lista, imprima 1 e mantenha-o para a próxima execução. Por que o singlevalue tem um jeito diferente?

questionAnswers(3)

yourAnswerToTheQuestion