Почему не всегда работает import

Почему не всегда работает импорт функции, модуля?

Пример:

import math # работает отлично

import this # работает великолепно

1 - import printing_functions # не хочет работать

2 - from printing_functions import * # работает отлично

3 - from printing_functions import printing_models # работает отлично

Как понимаю, что 1 и 2 это по сути одно и тоже, но почему, с какими то "большими" модулями\функциями import имя_функции, работает а с другими нет?

Не понимаю в чем причина? Очень хочу разобраться. помогите пожалуйста. PS

Все файлы находятся в одной директории\папке, в файлах только функции без лишнего кода.

UPD код модуля printing_functions

def printing_models(unprinted_designs, completed_models):
    '''Имитирует печать моделей, пока список не станет пустым.
    Каждая модель после печати перемещается в completed_models.
    '''
    while unprinted_designs:
        current_desing = unprinted_designs.pop()
        print(f"Printing model: {current_desing}")
        completed_models.append(current_desing)


def show_completed_models(completed_models):
    '''Выводит информацию обо всех напечатанных моделях.'''
    print("\nThe following models have been printed: ")
    for completed_model in completed_models:
        print(completed_model)

Скрипт из которого идет вызов

import printing_functions
unprinted_designs = ['phone case', 'robot pendant', 'dodecahedron']
completed_models = []

printing_models(unprinted_designs, completed_models)
show_completed_models(completed_models)

Текст ошибки:

Traceback (most recent call last):
  File "C:\my_pr_python\python_work\printing_models.py", line 38, in <module>
    printing_models(unprinted_designs, completed_models)
NameError: name 'printing_models' is not defined

Ответы (0 шт):