Конструкция if __name__ == "main"

Конструкция if __name__ == "main"

Python Proga

Всем привет! Сегодня я расскажу вам, зачем нужна конструкция if __name__ == "__main__" в Python и когда её нужно использовать.


Для начала давайте разберёмся, что хранится в переменной __name__:

Как мы видим, в этой переменной хранится строка со значением __main__. Но что будет, если мы импортируем этот модуль из другого?

Сохраним наш код в файле TEST2.py:

И в файле TEST3.py импортируем модуль TEST2:

Но перед запуском кода, следует сказать, что во время импорта интерпретатор Python запускает импортированный файл, а это значит, что у нас снова напечатается переменная __name__ из модуля TEST2.

И вот что мы получаем при запуске файла TEST3.py:

Теперь в переменной __name__ хранится название модуля.


Теперь мы пришли к выводу, что в файле, который мы запускаем, переменная __name__ принимает значение __main__, но в файле, который мы импортируем, эта переменная принимает в качестве значения название модуля:


Теперь можно догадаться, что в блок if __name__ == "__main__" нужно помещать тот код, который не должен выполняться при импортировании, но должен выполняться во время запуска файла. Например во время запуска файла TEST3.py мы увидим это:

А без конструкции if __name__ == "__main__" мы бы увидели это:

А это нам не нужно.


Надеюсь, что вы поняли, в чем заключается смысл этой конструкции. Всего доброго!




Report Page