Дрон Кодер — программирование для детей и взрослых в игровой форме. Начать бесплатно

Что такое if __name__ == "__main__"

Эта загадочная строка встречается почти в каждом Python-файле. На деле она отвечает на простой вопрос: запустили файл напрямую или импортировали.

Переменная __name__

В каждом файле есть встроенная переменная __name__. Если файл запущен напрямую, в ней лежит '__main__'. Если же файл импортировали как модуль в другой программе, там будет его имя. По этому и отличают два случая.

Зачем это нужно

Часто в файле есть и функции (чтобы их импортировали другие), и код для запуска (чтобы проверить самому). Условие if __name__ == '__main__' выполняет «код запуска» только при прямом старте, но не при импорте — иначе он сработал бы некстати.

def greet():
    print('привет')

if __name__ == '__main__':
    greet()   # только при прямом запуске файла

Хорошая привычка

Заворачивать запускающий код в это условие — стандартная практика. Она делает файл пригодным и для самостоятельного запуска, и для импорта без побочных эффектов. Новичку достаточно завести привычку так делать.

Частые вопросы

Что в __name__ при импорте? Имя модуля, а не '__main__'.

Обязательна ли эта строка? Нет, но она полезна, чтобы код не выполнялся при импорте.

Начать игру бесплатно
Попробуй прямо здесь
Уровень 1

Задание