from module_name import *.
  import * считается плохой практикой по нескольким причинам:
  from module_name import specific_name) или импортировать модуль целиком (import module_name) и обращаться к его содержимому через точку (module_name.specific_name).
Импортировать все содержимое из модуля в Python с помощью * можно, используя следующий синтаксис:
from module_name import *Этот оператор импортирует все общедоступные (не начинающиеся с символа подчеркивания _) имена (классы, функции, переменные и т.д.) из указанного модуля непосредственно в текущее пространство имен.  Например:
# my_module.py
def my_function():
    return "Hello from my_module!"
my_variable = 42
# main.py
from my_module import *
print(my_function()) # Выведет: Hello from my_module!
print(my_variable) # Выведет: 42
Почему это может быть плохой практикой:
from module import * скрывает явные зависимости вашего кода.  Читая код, сложно сразу понять, из какого именно модуля происходит то или иное имя. Это затрудняет рефакторинг, тестирование и поддержку кода.Рекомендации:
Вместо from module import * рекомендуется использовать:
from module import name1, name2, name3.import module; module.name1. Это делает код более явным и предотвращает конфликты имен.import very_long_module_name as vlm; vlm.name.Использование from module import * допустимо в небольших, изолированных скриптах или интерактивных сессиях, когда важна краткость и не предполагается дальнейшее расширение кода. Однако в более крупных и сложных проектах следует избегать этого способа импорта из соображений поддерживаемости, читаемости и предотвращения конфликтов имен.