Более-менее корректный ответ мог бы выглядеть так.
Большинство "слов" в коде на Python -- это имена-ссылки на объекты Python.
И функции, и "переменные" -- это объекты Python.
В любом пространстве имён могут хранится имена-ссылки как на функции, так и на "переменные".
Имена в каждом пространстве имён уникальны, поэтому нельзя одинаково назвать и функцию, и переменную. При попытке так сделать, что-то новое займёт имя-ссылку чего-то старого.
То же самое относится к классам, к объектам классов, к полям и методам классов и пр. Все объекты Python либо занимают уникальные имена в неком пространстве имён, либо не занимают вовсе (например, числа в списке доступны не по имени, а по индексу).
P.S. Спасибо, вопрос поднял настроение.