Ответ на заголовок вашего вопроса - «да»: я рекомендую никогда не использовать from ... import *
, и я обсуждал причины в другом очень недавнем ответе. Вкратце, квалифицированные имена хороши , голые имена очень ограничены, поэтому «третий вариант» является оптимальным (поскольку вы будете использовать квалифицированные имена, а не голые имена) среди тех, кого вы представляете.
(Преимущества квалифицированных имен по сравнению с простыми именами включают простоту фальсификации / насмешки в целях тестирования, снижение до нуля риска незаметных ошибок, вызванных случайным повторным связыванием, возможность «подделать» верхнее имя в «классе трассировки» для цель регистрации именно того, что вы используете, и упрощение таких действий, как профилирование и т. д. - недостатки, почти ничего ... см. также последний, но не менее важный коан в Zen of Python, import this
в подсказка интерактивного переводчика).
Одинаково хорошо, если вы пожалеете 7 дополнительных символов, чтобы сказать QtCore.whatever
, значит сократить - from PyQt4 import QtCore as Cr
и from PyQt4 import QtGi as Gu
(затем использовать Cr.blah
и Gu.zorp
) или тому подобное. Как и все аббревиатуры, это стиль компромисса между краткостью и ясностью (лучше назвать переменную count_of_all_widgets_in_the_inventory
, num_widgets
или x
? Часто средний выбор будет лучшим, но не всегда; -).
Кстати, я бы не использовал более одного предложения as
в одном операторе from
или import
(это может сбивать с толку), я бы предпочел иметь несколько операторов (также легче отлаживать, если какой-либо импорт дает проблема, чтобы изменить, если вы измените свой импорт в будущем, ...).