Особенностью языка программирования Python является встроенная системная переменная __name__
. Эта переменная имеет особую ценность для разработчиков, поскольку она позволяет проверить, выполняется ли модуль как основная программа.
Переменная __name__
в Python автоматически устанавливается в значение __main__
, когда текущий файл скрипта выполняется напрямую - то есть, когда вы выбираете файл для запуска в вашей IDE или через командную строку. Если же скрипт импортируется в качестве модуля в другой скрипт, значение переменной __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 является общепринятой практикой, поскольку это позволяет разработчику контролировать поведение его кода в зависимости от того, используется ли скрипт в качестве модуля или выполняется как основная программа. Это делает ваш код более модульным и гибким для повторного использования.