Загрузка страницы

Конструкция __MAIN__ для чего и кому нужна.

Расскажу для чего мы пишем if __name__=='__main__' и кому это может пригодиться.
Важные моменты:
1) любой код на питоне лежит в модуле (файл с расширением py)
2) любой модуль при запуске программы получает атрибут __name__
3) один(!) модуль, с которого программа началась (точка входа) получает имя __main__, все остальные (которые импортированы) получают имя, равное имени в файловой системе, без расширения. Например first
4) Крайне важное для понимания! Любой модуль при импорте выполняется, как если бы мы его запустили отдельно. То есть все принты будут напечатаны(если они не в функциях), любой вызов функции выполнен.

if __name__=='__main__' означает "если этот модуль НЕ был импортирован, а запущен напрямую, то..." и все действия в данном блоке НЕ будут выполнены при импорте модуля.

Для чего это нужно в том числе новичку:
- группировать все наши действия, имеющие эффект, потом их просто найти и менять
- отладка, тесты, ассерты, при импорте они не выполнятся
- специфичные настройки для запуска

Подчеркну, что блок мейн вовсе не обязателен, это просто возможность что-то выполнять в модуле скажем для отладки так, чтобы не получить ненужные эффекты при импорте, если мы забыли отладочные вещи убрать.

Видео Конструкция __MAIN__ для чего и кому нужна. канала Python Russian
Показать
Комментарии отсутствуют
Введите заголовок:

Введите адрес ссылки:

Введите адрес видео с YouTube:

Зарегистрируйтесь или войдите с
Информация о видео
14 января 2021 г. 9:17:41
00:15:04
Другие видео канала
«Наука голодания» — лучший док. фильм о лечебном голодании в СССР, России, Европе и США«Наука голодания» — лучший док. фильм о лечебном голодании в СССР, России, Европе и США2020 Практика программирования на Python, лекция №12020 Практика программирования на Python, лекция №1Частые ошибки начинающих питонистовЧастые ошибки начинающих питонистовПростая функция-генератор. Для чего нужен yieldПростая функция-генератор. Для чего нужен yieldРабота с Git в PyCharm. Без терминалов и головной боли. Смотреть до конца, жесть.Работа с Git в PyCharm. Без терминалов и головной боли. Смотреть до конца, жесть.Учим Python за 1 час! #От ПрофессионалаУчим Python за 1 час! #От ПрофессионалаИмпорт собственных модулей в Python. Import modules. Атрибут модуля  __name__ и __main__Импорт собственных модулей в Python. Import modules. Атрибут модуля __name__ и __main__Всегда проверяй свой код. Простое тестирование с assertВсегда проверяй свой код. Простое тестирование с assertОсновное оружие питониста: Listcomps и GenexpОсновное оружие питониста: Listcomps и GenexpПервый декоратор, разбираемся с написаниемПервый декоратор, разбираемся с написаниемPython Tutorial: if __name__ == '__main__'Python Tutorial: if __name__ == '__main__'Как изучать программирование (PYTHON, но не только)Как изучать программирование (PYTHON, но не только)Особенности и возможности PyCharmОсобенности и возможности PyCharmПростая работа с импортами для новичков. Что такое относительный и абсолютный импорт.Простая работа с импортами для новичков. Что такое относительный и абсолютный импорт.Что такое регулярные выражения (регулярки, regexp)Что такое регулярные выражения (регулярки, regexp)Все еще не используете аннотации типов? Тогда мы идем к вам!Все еще не используете аннотации типов? Тогда мы идем к вам!Ф-строки рулят. F-Strings, форматированиеФ-строки рулят. F-Strings, форматированиеНемного о встроенных функциях в PythonНемного о встроенных функциях в PythonЛямбды. Не такие и страшныеЛямбды. Не такие и страшныеКонсоль Python и с чем ее едятКонсоль Python и с чем ее едят
Яндекс.Метрика