Для довідки витяг із посібника з вивчення python.
Клієнт може виконати імпорт або оператор FROM. Якщо модуль не завантажується, ці оператори шукають, компілюватимуть і запускають файлову програму модуля. Головна різниця полягає в тому, що імпорт читає весь модуль, тому його потрібно визначити перед тим, як можна прочитати ім'я змінної; з отримає (або скопіює) імена змінних, специфічних для модуля.
Import змушує змінну звертатися до всього об'єкта модуля, тому властивості модуля мають бути отримані за ім'ям модуля (наприклад, module1.printer). а з копіює ім'я змінної в іншу область видимості, щоб вона могла використовувати ім'я скопійованої змінної безпосередньо у скрипті без проходження через модуль (наприклад, принтер).
Оператор від має потенціал порушувати простори назв. Якщо ви імпортуєте змінні за допомогою From, і ці змінні випадково дублюються існуючими змінними в сфері дії, ці змінні тихо перезаписуються. Це не є проблемою при використанні імпортних операторів, оскільки його вміст має отримуватися за ім'ям модуля. Однак при використанні From це не є великою проблемою на практиці, якщо ви розумієте і очікуєте це, особливо якщо чітко вказані імпортні змінні (наприклад, з імпорту модулів x, y, z).
З іншого боку, при використанні з викликом reload оператор from має серйозну проблему, оскільки ім'я імпортованої змінної може стосуватися попередньої версії об'єкта. Крім того, форма з імпорту модулів * дійсно може порушити простір імен і ускладнити розуміння імен змінних, особливо при імпорті більше ніж одного файлу.
Більш прагматична пропозиція полягає в тому, що прості модулі зазвичай використовують імпорт, а не з. Більшість операторів з використовуються для явного перелічення бажаних змінних і обмежені використанням форми з * лише один раз на файл. Таким чином, будь-яку невизначену змінну назву можна вважати такою, що існує в модулі, на який посилається з *. Вам справді потрібно використовувати імпорт, коли потрібно використовувати одну й ту ж змінну з назвою змінних, визначену у двох різних модулях, і в такому випадку ви не можете використовувати з.
Я багато говорив, не знаю, що сказати, давайте коротко поговоримо.
- імпорт Модуль # Ввести модулі
- з Імпорт модуля Інше # Ввести класи, функції або змінні в модуль
- з імпорту модуля * # Ввести всіх «публічних» учасників модуля
Простими словами:
Імпорт класу A #把整个一班的学生引入了进来
від групи імпортних Сяо Ван #只把一般的小王引入了进来
Наприклад:
Прикладом є часовий пакет, і наступні два методи запису є однаковими, а саме:
|