Насколько я понял, from module import *
означает, что все из модуля будет доступно локально.Неожиданное поведение при загрузке модуля в Python
В моем коде я нашел:
from tkinter import *
и
from tkinter import filedialog
Оглядываясь назад, я полагал, что я мог бы бросить эту последнюю строчку, но он недоступен:
NameError: name 'filedialog' is not defined.
Что мне не хватает?
Чтобы держать его коротким, это ваш ответ: [FileDialog это ** ** модуль из Tkinter] [1] [1]: http://stackoverflow.com/questions/ 9239514/filedialog-tkinter-and-opening-files – angryfruitsalad
Импорт '*' импорт * не * импортирует подмодуль. Он просто импортирует выбранный пакет и помещает все в глобальное пространство имен. Нет никакой разницы в «загруженных вещах» между 'import tkinter' и' from tkinter import * ', разница в том, что последний будет загрязнять пространство имен. Если файл '__init __. Py' не импортирует подмодули, то вы * должны * импортировать их явно (и это похоже на случай). – Bakuriu