Fragment podręcznika do nauki Pythona do protokołu.
Klient może wykonać polecenie import lub from. Jeśli moduł nie jest załadowany, te instrukcje przeszukają, skompilują i wykonają program pliku modułu. Główna różnica polega na tym, że import odczytuje cały moduł, więc musi być zdefiniowany, zanim można odczytać nazwę zmiennej; from otrzyma (lub skopiuje) nazwy zmiennych specyficzne dla modułu.
import sprawia, że nazwa zmiennej odnosi się do całego obiektu modułu, więc właściwości modułu muszą być uzyskane przez nazwę modułu (np. module1.printer). a from skopiuje nazwę zmiennej do innego zakresu, dzięki czemu może użyć skopiowanej nazwy zmiennej bezpośrednio w skrypcie, bez przechodzenia przez moduł (np. drukarkę).
From Command może łamać przestrzenie nazw. Jeśli zaimportujesz zmienne używając from, a te zmienne są zdublowane z istniejącymi zmiennymi w zakresie, zmienne zostaną cicho nadpisane. Nie stanowi to problemu przy użyciu instrukcji importu, ponieważ ich zawartość musi być uzyskana przez nazwę modułu. Jednak przy użyciu from w praktyce nie stanowi to dużego problemu, o ile rozumiesz i przewidujesz takie rzeczy, zwłaszcza jeśli jasno podasz nazwy zmiennych importowanych (np. z modułu import x, y, z).
Z drugiej strony, gdy jest używane z wywołaniem reload, instrukcja from ma poważny problem, ponieważ nazwa zmiennej importowanej może odnosić się do wcześniejszej wersji obiektu. Ponadto formularz z module import * może faktycznie zepsuć przestrzeń nazw i utrudnić zrozumienie nazw zmiennych, zwłaszcza przy importowaniu więcej niż jednego pliku.
Bardziej pragmatyczna sugestia jest taka, że proste moduły zazwyczaj korzystają z importu, a nie from. Większość instrukcji from służy do jawnego wyliczania pożądanych zmiennych i ogranicza się do użycia formy z * tylko raz na plik. W ten sposób każdą niezdefiniowaną nazwę zmiennej można uznać za istniejącą w module odwołanym z *. Naprawdę musisz użyć importu, gdy musisz użyć tej samej zmiennej o nazwie zmiennej zdefiniowanej w dwóch różnych modułach, w takim przypadku nie możesz użyć from.
Dużo mówiłem, nie wiem, co powiedzieć, porozmawiajmy o tym krótko.
- import Moduł # Wprowadź moduły
- z importu modułu Inne # Wprowadź klasy, funkcje lub zmienne w module
- z importu modułu * # Wprowadź wszystkich członków "publicznych" w module
Mówiąc prosto:
importuj klasę #把整个一班的学生引入了进来
od grupy importowanych Xiao Wang #只把一般的小王引入了进来
Na przykład:
Pakiet czasu jest przykładem, a dwie metody zapisu są takie same, jak następuje:
|