Для чего используется переменная __name__ в Python?

Использование переменной name в Python

Особенностью языка программирования Python является встроенная системная переменная __name__. Эта переменная имеет особую ценность для разработчиков, поскольку она позволяет проверить, выполняется ли модуль как основная программа.

Переменная __name__ в Python автоматически устанавливается в значение __main__, когда текущий файл скрипта выполняется напрямую - то есть, когда вы выбираете файл для запуска в вашей IDE или через командную строку. Если же скрипт импортируется в качестве модуля в другой скрипт, значение переменной __name__ устанавливается в имя этого файла скрипта (без расширения).

Пример использования переменной name

Предположим, у вас есть два файла Python: script1.py и script2.py. В script1.py находится следующий код:

def func():
    print("Функция 'func' из script1 была вызвана")

if __name__ == "__main__":
    func()

Во втором файле script2.py находится следующий код:

import script1

script1.func()

Когда вы запускаете script1.py напрямую, __name__ равно __main__, следовательно, условие if __name__ == "__main__": является истинным, и функция func() вызывается.

Однако, когда вы запускаете script2.py, функция func() вызывается через модуль script1. __name__ в данном случае равняется script1, и блок кода под условием if __name__ == "__main__": в модуле script1 игнорируется.

Заключение

Использование if __name__ == "__main__": в Python является общепринятой практикой, поскольку это позволяет разработчику контролировать поведение его кода в зависимости от того, используется ли скрипт в качестве модуля или выполняется как основная программа. Это делает ваш код более модульным и гибким для повторного использования.

Related Questions

Считаете ли это полезным?