Разница между импортированием tkinter как tk и из импорта tkinter

Я знаю, что это глупый вопрос, но я только начинаю изучать python, и у меня нет хорошего знания python. Мой вопрос в том, в чем разница между

from Tkinter import * 

а также

 import Tkinter as tk 

Почему я не могу просто написать

 import Tkinter 

Может ли кто-нибудь пощадить несколько минут, чтобы просветить меня?

2 Solutions collect form web for “Разница между импортированием tkinter как tk и из импорта tkinter”

from Tkinter import * импортирует каждый открытый объект в Tkinter в ваше текущее пространство имен. import Tkinter импортирует «пространство имен» Tkinter в ваше пространство имен и import Tkinter as tk делает то же самое, но «переименовывает» его локально в «tk», чтобы сохранить типизацию

скажем, у нас есть модуль foo, содержащий классы A, B и C.

Затем import foo дает вам доступ к foo.A, foo.B и foo.C.

Когда вы import foo as x вас есть доступ к ним тоже, но под именами xA, xB и xC from foo import * будет импортировать A, B и C прямо в ваше текущее пространство имен, чтобы вы могли получить к ним доступ с помощью A, B и C.

Существует также from foo import A, C будет импортировать A и C, но не B в ваше текущее пространство имен.

Вы также можете сделать from foo import B as Bar , который сделает B доступным под названием Bar (в вашем текущем пространстве имен).

Итак, обычно: когда вы хотите только один объект модуля, вы делаете from module import object или from module import object as whatiwantittocall .

Если вам нужны некоторые модули, вы import module или import module as shortname чтобы сохранить ввод.

from module import * не рекомендуется, так как вы можете случайно изменить («переопределить») имена и можете потерять трек, какие объекты принадлежат этому модулю.

Вы, безусловно, можете использовать

 import Tkinter 

Однако, если вы это сделаете, вам нужно будет префикс каждого имени класса Tk, которое вы используете с Tkinter. ,

Это довольно неудобно.

С другой стороны, следующее:

 import Tkinter as tk 

устраняет проблему, только требуя, чтобы вы tk. вместо Tkinter. ,

Относительно:

 from Tkinter import * 

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

  • NameError: глобальное имя 'text' не определено
  • import matplotlib failing без модуля с именем _tkinter on heroku
  • ImportError при импорте Tkinter в Python
  • Создание пустых изображений в Python (разрешение пиксельных манипуляций)
  • Изменение цвета нескольких кнопок tkinter
  • Tkinter after_cancel в python
  • Обратный вызов функции python из Tkinter Tcl в Windows
  • В чем разница между «обновлением» и «update_idletasks»?
  • Python - лучший язык программирования в мире.