__main__.md
1> **Источник:** https://python-all.ru/3.4/library/__main__.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# 29.4. [`__main__`](https://python-all.ru/3.4/library/__main__.html#module-__main__) – Окружение скрипта верхнего уровня89Именем `'__main__'` обозначается область видимости, в которой выполняется код верхнего уровня. Значение `'__main__'` присваивается атрибуту \_\_name\_\_ модуля, когда он считывается со стандартного ввода, из скрипта или интерактивной строки.1011Модуль может определить, выполняется ли он в основной области видимости, проверив свой атрибут `__name__`. Это позволяет реализовать распространённую идиому условного выполнения кода в модуле, когда он запускается как скрипт или с помощью `python -m`, но не при его импорте:1213```python14if __name__ == "__main__":15 # выполнять только при запуске как скрипт16 main()17```1819Для пакета того же эффекта можно добиться, включив модуль `__main__.py`, содержимое которого будет выполнено, когда пакет запускается с помощью `-m`.20