Модули импорта Python - PullRequest
       10

Модули импорта Python

0 голосов
/ 15 марта 2019

Мне интересно, почему кто-то хотел бы импортировать только определенные классы или функции из модуля.Другими словами: почему я должен использовать следующее:

from abc.xyz import fgh
from abc.uvw import jkl
from abc.klo import mno

, если я могу просто использовать:

import abc

Я подумал, что, если я импортирую модуль abc, я должен иметь доступ квсе что внутри, или я не прав?

ура

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Думайте о модуле как о пространстве имен, поэтому, если вы импортируете abc, вы сможете использовать abc и ссылаться на что-либо в разделе abc с помощью abc.something, но если вы импортируете только определенную вещь из этого пространства имен, вы навернякаиметь доступ к этому конкретному имени только в вашем коде.

0 голосов
/ 15 марта 2019

Напомним, что на этих модулях уже написаны файлы кода для выполнения конкретных задач.Всякий раз, когда я импортирую модуль, компиляторы / интерпретаторы берут код из этого файла и каким-то образом добавляют код в мой код (исполняемый файл).Теперь допустим, что модуль abc имеет размер 15 Кбайт, и я хочу использовать только функцию xyz из него, тогда импорт всего 15 Кб будет просто непроизводительным расходом для моего компилятора / интерпретатора.Вот почему рекомендуется импортировать только определенные функции / классы, чтобы при компиляции или интерпретации требовалось минимальное количество работы.

...