Python: função e variável com o mesmo nome

Minha pergunta é por que não consigo chamar a função novamente? Ou, como fazer isso?

Suponha que eu tenho esta função:

def a(x, y, z):
 if x:
     return y
 else:
     return z

e eu chamo com:

print a(3>2, 4, 5)

Eu recebo 4.

Mas imagine que eu declaro uma variável com o mesmo nome que a função (por engano):

a=2

Agora, se eu tentar fazer:

a=a(3>4, 4, 5)

ou:

a(3>4, 4, 5)

Eu receberei este erro: "TypeError: o objeto 'int' não pode ser chamado"

Não é possível atribuir a variável 'a' à função?

questionAnswers(3)

yourAnswerToTheQuestion