В динамических языках программирования файлы с кодом могут выполнять две разные роли: быть исполняемым скриптом, либо быть модулем. В зависимости от роли на эти файлы накладываются разные ограничения, они по-разному устроены.
Мы подробно рассказываем, что такое скрипты, модули и библиотеки в вашем коде, и как с ними правильно работать:
Подробнее почитать про то, как ведут себя скрипты и модули, можно в нашей большой статье.