Что значит строка if __name__ == ‘__main__’ в Python?

Любой питоновский файл является модулем, который можно импортировать в текущий код с помощью команды import. Но не всегда код из импортируемого файла полностью исполняется в текущем. Например, если в импортируемом файле часть кода заключена в условие: if __name__ == '__main__', то эта часть кода будет игнорироваться. Почему? Потому что указанное условие проверяет, является ли модуль основной (main) программой. Если модуль никуда не импортируется, а выполняется как самостоятельная программа, то значение переменной __name__, хранящей имя этого модуля, будет равно '__main__', и код, заключенный в условие: if __name__ == '__main__' выполнится!

Таким образом, условие if __name__ == '__main__' позволяет включать в файл код, который реализуется только тогда, когда файл выполняется как самостоятельная программа, и игнорируется, если файл является импортируемым модулем.

Разбираемся на практике!

Чтобы лучше понять, как это работает рассмотрим простой файл «test.py», содержащий код:

# test.py: 
info = 'Импортируется как модуль'

if __name__ == '__main__':
    info = 'Режим основного сценария'
    print(info)

В случае, если «test.py» выполняется как самостоятельный сценарий, условие в строке if __name__ == ‘__main__’ реализуется, и на экран будет выведено содержимое переменной info:

Режим основного сценария

Если же мы импортируем «test.py» в качестве модуля в другой исполняемый файл, то условие if __name__ == ‘__main__’ не выполнится, заключенный в этом условии код будет проигнорирован, а переменная test.info будет содержать строку: ‘Импортируется как модуль’:

# Файл test.py: 
info = 'Импортируется как модуль'

if __name__ == '__main__':
    info = 'Режим основного сценария'
    print(info)
# Создаем новый файл и импортируем в него test.py как модуль:
import test
print(test.info)

Вывод на экран:

Импортируется как модуль

У нас появился Telegram-канал для изучающих Python! Присоединяйтесь: вместе «питонить» веселее! 😉 Ссылка на канал: «Кодим на Python!»

Добавить комментарий