# module.py
def hello():
    print("Hello from module!")
# main.py
import module
module.hello()
Код корректный.  При запуске main.py на экран будет выведено сообщение "Hello from module!".
import module импортирует модуль module.py.
module.hello() вызывает функцию hello(), определенную в модуле module.
    Данный код демонстрирует базовый импорт модуля в Python.  Он состоит из двух файлов: module.py, содержащего функцию hello(), и main.py, который импортирует этот модуль и вызывает функцию hello().
  
Выполнение кода:
    При запуске main.py интерпретатор Python выполнит следующие действия:
  
module.py.  Если это первый импорт этого модуля, Python найдет файл module.py в одном из каталогов, указанных в sys.path.module.py, в данном случае определив функцию hello().main.py и выполняет оставшийся код.module.hello(), что приведет к печати "Hello from module!" в консоль.Возможные вопросы на собеседовании и примерные ответы:
main.py?
      main.py в консоль будет выведено "Hello from module!".
    module.py?
      sys.path.  Обычно этот список включает текущий каталог, каталоги установки Python и каталоги, добавленные через переменную окружения PYTHONPATH.
    module.py не будет найден?
      ModuleNotFoundError (или ImportError в более старых версиях Python).
    module.py будет синтаксическая ошибка?
      module.py будет выброшено исключение SyntaxError.
    from module import hello?
      hello() импортируется непосредственно в пространство имен main.py, и ее можно будет вызывать просто как hello(), а не module.hello().
    import module и from module import *?
      import module импортирует весь модуль, и доступ к его содержимому осуществляется через module.имя_функции или module.имя_переменной. from module import * импортирует все имена (функции, классы, переменные) из модуля в текущее пространство имен. Последний вариант может привести к конфликтам имен, если в текущем файле уже есть имена, совпадающие с именами в импортируемом модуле, и потому обычно считается плохой практикой.
    importlib.reload(module).  В более старых версиях приходилось использовать reload(module) (из встроенной функции reload, которая в 3.x переехала в importlib).  Однако, перезагрузка модуля может быть опасной и привести к непредсказуемым результатам, особенно если модуль содержит классы или другие сложные структуры данных. Лучше избегать перезагрузки модулей в производственном коде.