Я знаю стандартный пример: если вы выполняете модуль напрямую, то глобальная переменная __name__ определяется как "__main__". Однако нигде в документации я не могу найти точное описание того, как __name__ определяется в общем случае. Документация модуля говорит...
Внутри модуля имя модуля (как строка) доступно как значение глобальной переменной
__name__.
... но что это означает под названием "имя модуля"? Это просто имя модуля (имя файла с .py удалено), или оно включает также полное имя пакета?
Как определяется значение переменной __name__ в модуле Python? Для бонусных точек укажите, где именно в исходном коде Python выполняется эта операция.