if __name__ == '__main__'

Перейдите к следующему слайду, нажав кнопку Вправо

Зачем нужна эта конструкция в Python

Подготовлено онлайн-курсом

https://dvmn.org

Вывод №1:

Код внутри if __name__ == '__main__' исполняется, как обычно.

$ python3 hello_if.py
Привет!
$
$ python3 hello.py
Привет!
$
if __name__ == '__main__':
    print('Привет!')
print('Привет!')

файл hello_if.py

файл hello.py

Запустим файлы:

Сравним два файла с кодом:

Вывод №2:

Код внутри if __name__ == '__main__': не исполняется при импорте файла.

Поэтому весь код, который не является объявлением функций и констант, принято заносить внутрь if __name__ == '__main__'.

$ python3 import_hello_if.py
$
$ python3 import_hello.py
Привет!
$
import hello_if
import hello

Запустим:

Импортируем файлы с кодом:

файл import_hello_if.py

файл import_hello.py

Защита от неожиданного запуска кода:

def do_the_work():
    ....

if __name__ == '__main__':
    # здесь находится код, который
    # исполнится только при запуске
    # скрипта напрямую
    print('hello world')
    do_the_work()

Спрячьте все вызовы `print` внутрь ifmain, либо упакуйте их в функции, которые вызываются кодом внутри ifmain.

Создано для онлайн-курса https://dvmn.org