from Tkinter import *
importuje każdy eksponowany obiekt w aplikacji Tkinter do bieżącego obszaru nazw. import Tkinter
importuje „namespace” Tkinter w przestrzeni nazw i import Tkinter as tk
robi to samo, ale „zmienia nazwę” to lokalnie do „tk” aby zapisać wpisywanie
powiedzmy mamy moduł foo, zawierający klasy A, B i C.
Następnie import foo
daje dostęp do foo.A, foo.B i foo.C.
Po dokonaniu import foo as x
masz dostęp również do nich, ale pod nazwami x.A, x.B i x.C. from foo import *
importuje A, B i C bezpośrednio w bieżącym obszarze nazw, dzięki czemu można uzyskać do nich dostęp z A, B i C.
Istnieje również from foo import A, C
wich zaimportuje A i C, ale nie B do bieżącego przestrzeń nazw.
Można również wykonać from foo import B as Bar
, co spowoduje, że B będzie dostępne pod nazwą Bar (w bieżącym obszarze nazw).
Tak ogólnie: jeśli chcesz tylko jeden obiekt modułu, wykonaj from module import object
lub from module import object as whatiwantittocall
.
Jeśli potrzebujesz funkcji niektórych modułów, musisz wykonać import module
lub import module as shortname
, aby oszczędzić ci pisania.
from module import *
jest odradzane, ponieważ możesz przypadkowo zamaskować ("przesłonić") nazwy i może stracić to, które obiekty należą do tego modułu.
tak, to czy ma więcej mocy obliczeniowej, aby użyć „import foo”, jeśli jestem tylko jeden użycie będzie klasa (np. klasa A). Czy zamiast tego powinienem użyć "z foo importu A"? czy różnica jest znikoma? Przy okazji, świetne wytłumaczenie dla początkującego, jak ja. dzięki! –
Obawy związane z wynikami importu są a) nieistotne i b) nieistotne. Rób to, co najbardziej ci odpowiada, a nie implementację pytona. 'from foo import A' jest szybszy w wyszukiwaniu później, gdy używasz A, ale pythoniści na ogół nie dbają o takie rzeczy. – ch3ka