Python: función y variable con el mismo nombre

Mi pregunta es ¿por qué no puedo volver a llamar a la función? ¿O cómo hacer eso?

Supongamos que tengo esta función:

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

y lo llamo con:

print a(3>2, 4, 5)

Me dan 4.

Pero imagine que declaro una variable con el mismo nombre que la función (por error):

a=2

Ahora, si trato de hacer:

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

o:

a(3>4, 4, 5)

Obtendré este error: "TypeError: el objeto 'int' no es invocable"

¿No es posible asignar la variable 'a' a la función?

Respuestas a la pregunta(3)

Su respuesta a la pregunta