Подтвердить что ты не робот

В чем разница между модулем и script в Python?

Подумайте, что название подводит итог: -)

4b9b3361

Ответ 1

A script, как правило, является непосредственно исполняемым фрагментом кода, который выполняется сам по себе. Модуль, как правило, представляет собой библиотеку, импортированную другими фрагментами кода.

Обратите внимание, что нет внутреннего различия - оба являются исполняемыми и импортируемыми, хотя библиотечный код часто ничего не будет делать (или просто запускает его модульные тесты) при непосредственном выполнении, а импорт кода, созданного как script, приведет к он должен выполнить, следовательно, общий тест if __name__ == "__main__".

Ответ 2

Любой модуль Python может быть выполнен как script. Единственное существенное различие заключается в том, что при импорте в качестве модуля имя файла используется в качестве основы для имени модуля, тогда как если вы выполняете его как script, то модуль называется __main__.

Это различие позволяет иметь другое поведение при импорте, заключая script конкретный код в блоке, защищенном if __name__=="__main__". Это, как известно, вызывает путаницу, когда пользователь пытается импортировать основной модуль под своим именем, а не импортировать __main__.

Небольшое различие между скриптами и модулями заключается в том, что при импорте модуля система будет пытаться использовать существующий файл .pyc(при условии, что он существует и обновлен и для этой версии Python), и если он должен скомпилировать из файла .py он попытается сохранить файл .pyc. Когда вы запустите файл .py как script, он не пытается загрузить ранее скомпилированный модуль и не попытается сохранить скомпилированный код. По этой причине, возможно, стоит немного свести скрипты к минимуму времени запуска.