При использовании import * трудно понять, какие именно функции или переменные были импортированы из модуля.


Пример 1

Хорошей практикой является импортирование только тех инструментов, которые необходимы.

Плохо:


from math import *

Хорошо:


from math import sqrt, sin


Пример 2

Есть риск, что в разных модулях могут быть функции и/или переменные, которые имеют одинаковые названия, что приведёт к конфликту. Также это может привести к циклическому импорту.

Плохо:


from basket_actions import *
from statistics import *

Хорошо:


from basket_actions import add_product, clear_basket 
from statistics import average_product_price