f2(x)
Вполне нормально вызывать функцию, определенную после функции, где она вызывается, при условии, что второй оператор
def выполняется перед фактическим вызовом первой функции. Код внутри def никогда не выполняется до тех пор, пока функция не будет действительно вызвана.