Откъс от ръководството за изучаване на Python за протокола.
Клиентът може да изпълни import или from оператора. Ако модулът не е зареден, тези оператори ще търсят, компилират и изпълняват файловата програма на модула. Основната разлика е, че импортът чете целия модул, така че той трябва да бъде дефиниран, преди името на променливата да може да бъде прочетено; От ще получи (или копира) имена на променливи, специфични за модули.
Import кара името на променливата да се отнася до целия обект на модула, така че свойствата на модула трябва да се получат чрез името на модула (например module1.printer). и From ще копира името на променливата в друг обхват, така че да може да използва копираното име на променливата директно в скрипта, без да преминава през модул (например принтер).
От изявлението има потенциала да нарушава именни пространства. Ако импортирате променливи с от и тези променливи се дублират с вече съществуващи променливи в обхвата, променливите ще бъдат тихо презаписани. Това не е проблем при използване на импортни оператори, тъй като съдържанието му трябва да се получи чрез името на модула. Въпреки това, когато използвате from, това не е голям проблем на практика, стига да разбирате и очаквате това да се случи, особено ако ясно посочите имената на импортните променливи (например от импорт на модули x, y, z).
От друга страна, когато се използва с reload, операторът from има сериозен проблем, тъй като името на импортираната променлива може да се отнася до предишна версия на обекта. Освен това, формата от импорт на модули * наистина може да наруши пространството от имена и да направи имената на променливите трудни за разбиране, особено при импортиране на повече от един файл.
По-прагматично предложение е, че простите модули обикновено използват import, а не from. Повечето от оператори се използват за изрично изброяване на желаните променливи и са ограничени да използват формата от * само веднъж на файл. По този начин всяко неопределено име на променлива може да се счита за съществуващо в модула, рефериран от *. Наистина трябва да използваш import, когато трябва да използваш една и съща променлива с името на променливата, дефинирана в два различни модула, в който случай не можеш да използваш от.
Говорих много, не знам какво да кажа, нека поговорим накратко.
- импорт Модул # Въведете модули
- от Импорт на модули Други # Въведете класове, функции или променливи в модула
- от Импорт на модули * # Въведете всички "публични" членове в модула
На прост език:
Импортиране на клас #把整个一班的学生引入了进来
от група чуждестранни Сяо Уанг #只把一般的小王引入了进来
Например:
Time package е пример, а следните два метода на писане са еднакви, както следва:
|