← Все вопросы

Что значит if __name__ == '__main__'?

Задан 5 месяцев назад716 просмотров2 ответа
18

Везде в чужом коде вижу в конце:

if __name__ == '__main__':
    main()

Что это и обязательно ли так писать?

2 ответа

20
✓ Принятый ответ — помог автору

Когда файл запускают напрямую, Python ставит __name__ == '__main__'. Когда этот же файл импортируют как модуль — там __name__ равен имени модуля.

Проверка значит «выполни это только при прямом запуске, а не при импорте». Удобно: функции можно переиспользовать в другом коде, и main() не запустится сам собой.

Для маленьких скриптов не обязательно. Для модулей-библиотек — хороший тон.

Ivan Ivanov наконец понял зачем это, спасибо · 5 месяцев назад
7

Короче: «не запускай демо-код, если меня просто импортировали».

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект