`from x import y` vs.` from xy import * `

В чем разница между этими двумя строками?

from PyQt4 import QtGui from PyQt4.QtGui import * 

Первая строка – «импортировать QtGui-класс из модуля PyQt4».
Но что означает вторая линия? Msgstr "Импортировать все из QtGui модуля PyQt4".
Разве это не то же самое?

Первый оператор импортирует указанный модуль в текущее пространство имен.
Второй оператор импортирует все из указанного модуля в текущее пространство имен.

Итак, 1) означает, что вам все равно нужно явно ссылаться на любые классы / функции и т. Д. Через пространство имен модулей
2) означает, что вы не

Вот сравнение и контраст, который показывает разницу

1)

 import math d = math.sqrt(10) 

2)

 from math import * d = sqrt(10) 

Обратите внимание, что вы можете выбрать импорт определенного символа из модуля, если хотите, т.е.

 from math import sqrt d = sqrt(10) 

Пакеты могут экспортировать несколько штук. Разница в том, что первая строка импортирует один объект из пакета, второй – все. Если пакет, который вы импортируете, экспортирует только одно, два являются синонимами.