Часто в программах на Python можно встретить следующую конструкцию:
if __name__ == "__main__": print("Hello, World!")
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Возникает вопрос, что же делает эта конструкция и почему она так часто используется.
В Python, при выполнении скрипта, этот скрипт получает специальное имя — __main__
. Фактически, это означает, что при запуске скрипта из командной строки или при его вызове из другого скрипта, Python автоматически присваивает ему имя __main__
.
В то же время, если модуль импортируется в другой скрипт, то его имя (__name__
) будет равно имени файла (без расширения .py).
Таким образом, конструкция if __name__ == "__main__":
позволяет определить, как именно был запущен скрипт — непосредственно или через импорт в другой скрипт.
Рассмотрим пример:
# test.py def function(): print("Function is called") if __name__ == "__main__": print("Script is run directly") function() else: print("Script is imported")
Если запустить скрипт test.py
напрямую, в консоль будет выведено следующее:
Script is run directly Function is called
Но если импортировать этот скрипт в другой, то будет выведено только «Script is imported». При этом функция function()
не будет вызвана.
# main.py import test
Script is imported
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
Таким образом, благодаря конструкции if __name__ == "__main__":
, можно контролировать поведение скрипта в зависимости от того, как он был запущен.
Добавить комментарий