Tente Python finalmente bloquear retornos [duplicado]

Esta pergunta já tem uma resposta aqui:

Comportamento estranho Try-Except-Else-Finalmente com instruções Return 2 respostas

Existe o código interessante abaixo:

def func1():
    try:
        return 1
    finally:
        return 2

def func2():
    try:
        raise ValueError()
    except:
        return 1
    finally:
        return 3

func1()
func2()

Poderia agradar a alguém explicar, quais resultados retornarão essas duas funções e explicar por que, ou seja, descrever a ordem da execução

questionAnswers(4)

yourAnswerToTheQuestion