Рубрики
Без рубрики

Пакеты в Python – краткое введение

Сегодня мы узнаем о пакетах в Python. Прежде чем приступить к этому руководству, вы должны иметь знания о модулях Python

Автор оригинала: Pankaj Kumar.

Сегодня мы узнаем о пакетах в Python. Прежде чем приступить к этому руководству, вы должны иметь знания о модулях Python.

Что такое пакеты в Python?

Пакет в Python – это коллекция нескольких файлов модулей в одном каталоге. Это позволяет для более легкой переносимости со всеми приложенными зависимостями в одной папке.

Мы используем нотацию DOT для доступа к функциональности модуля в пакете.

Например, если вы хотите получить доступ к модулю «Famcure_Module» под пакетом с именем «Famcure_package», вы можете сделать это, используя образец_package.sample_module Отказ

Короче говоря, пакет Python облегчает работу с несколькими модулями.

Как создать пакет в Python?

Предположим, вы хотите разработать коллекцию модулей для обработки музыкальных файлов. Посмотрите на следующую структуру. Вот как вы организуете разные файлы в папке пакета. В нашем случае папка пакета верхнего уровня – «музыка»:

music/                          Top-level package
      __init__.py               Initialize the music package
      formats/                  Subpackage for file conversions
              __init__.py
              wavread.py
              wavwrite.py
              aiffread.py
              aiffwrite.py
              auread.py
              auwrite.py
              ...
      effects/                  Subpackage for sound effects
              __init__.py
              echo.py
              surround.py
              reverse.py
              ...
      filters/                  Subpackage for filters
              __init__.py
              equalizer.py
              vocoder.py
              karaoke.py
              ...

Каждая пакет в Python должна иметь __init__.py Файл, который гарантирует, что этот каталог будет рассматриваться как пакет Python.

Вообще __init__.py Может быть просто пустой файл или он также может быть исполняемым кодом инициализации для пакета или установить __All__ Переменная, которая будет изучена в последней части этого учебника.

Для импорта индивидуального модуля из пакета можно использовать любой из следующих способов.

import music.formats.wavwrite

Или же

from music.formats import wavwrite

Приведенные выше заявления загружают подмодулю music.formats.wavwrite Отказ

Предположим, модуль wavwrite.py имеет функцию имени writefile (afilename) Это принимает имя файла в качестве своего аргумента, мы называем его таким же ниже:

import music.formats.wavwrite
...
...

music.formats.wavwrite.writeFile(outputFileName)


Или во втором пути-

from music.formats import wavwrite
...
...
wavwrite.writeFile(outputFileName)


Мы можем пойти еще глубже в операторе импорта, где мы только импортируем функцию, которые нам нужны. Вот пример того, как вы можете сделать то же самое:

from music.formats.wavwrite import writeFile
...
...
writeFile(outputFileName)


Как импортировать все модули из пакета Python?

Любопытный читатель может удивиться, что, если кто-то пишет От музыки. Форматы импортируют * Как мы сделали, импортируя из модуля, не было бы легче?

Хотя это, безусловно, легче, проблема будет чрезмерным использованием памяти, так как большинство функций не будут использоваться в ваших программах.

Идеальное решение, где автор пакета обеспечивает явный индекс пакета.

Если пакет __init__.py код определяет список с именем __All__ , это будет рассмотрено как индекс имена модулей, которые должны быть импортированы, когда От музыки. Форматы импортируют * встречается.

Давайте посмотрим другой пример, чтобы понять эту концепцию четко. Предположим, у нас есть структура пакета, как это; q

Здесь вы можете увидеть под \ музыкой есть __init__.py Отказ Если __All__ определяется ниже;

__all__ = ["admin", "apps", "models"]

Тогда только подмодулы зачислены в вышеуказанный список, будут импортированы во время A от музыкального импорта * встречается.

Если __All__ не определен от музыкального импорта * Заявление не будет импортировать все подмодулы из пакета. Утверждение от музыкального импорта * только гарантирует, что музыкальный пакет был импортирован.

Заключение

Так что это в значительной степени все основные данные о пакете Python. Для получения дополнительной информации вы можете увидеть официальный Doc Python – https://docs.cython.org/3/tuTorial/modules.html#packages.

Так продолжай практиковать. # happy_coding 🙂.