Основная среда сценариев верхнего уровня
Что это такое
__main__ — это имя области, в которой выполняется код верхнего уровня. Имя модуля устанавливается равным __main__, когда он считывается из стандартного ввода, сценария или интерактивной подсказки.
Модуль может определить, выполняется ли он в основной области, проверив свое собственное __name__, что позволяет использовать распространенный идиом для условного выполнения кода в модуле. Когда он запускается как сценарий или с помощью python -m, но не когда он импортируется:
# __name__ == "__main__": проверка, запущен ли сценарий напрямую (не импортирован)
if __name__ == "__main__": # True, если запущен как сценарий, False, если импортирован
# выполняется только при запуске в качестве сценария
main()
Для пакета тот же эффект может быть достигнут путем включения модуля main.py, содержимое которого будет выполнено, когда модуль запускается с помощью -m.
Например, если мы разрабатываем сценарий, предназначенный для использования в качестве модуля, мы должны сделать следующее:
# Пример: функцию можно импортировать, но тестовый код выполняется только при прямом запуске
def add(a, b):
return a+b
if __name__ == "__main__": # Выполняется только при запуске файла, а не при импорте
add(3, 5)
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
__name__, когда файл Python запускается напрямую как сценарий?"**main**"NoneTrueПреимущества
- Каждый модуль Python имеет определенное
__name__, и если оно равно__main__, это означает, что модуль запускается пользователем автономно, и мы можем предпринять соответствующие действия. - Если вы импортируете этот сценарий как модуль в другой сценарий, имя устанавливается в имя сценария/модуля.
- Файлы Python могут выступать либо в качестве многократно используемых модулей, либо в качестве автономных программ.
if __name__ == "__main__":используется для выполнения некоторого кода только в том случае, если файл запускается напрямую, а не импортируется.
Войдите в систему, чтобы ответить на эту викторину и отслеживать свой прогресс обучения
if __name__ == "__main__":?