Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Python

Python — Модули

Предыдущая страницаСледующая страница

Модуль позволяет логически организовать ваш код Python. Группировка связанного кода в модуль упрощает его понимание и использование. Модуль – это объект Python с произвольными именами атрибутов, которые вы можете связать и на которые можно ссылаться.

Проще говоря, модуль — это файл, состоящий из кода Python. Модуль может определять функции, классы и переменные. Модуль также может включать исполняемый код.

Пример

Код Python для модуля с именем aname обычно находится в файле с именем aname.py . Вот пример простого модуля, support.py

01

импорт Заявление

Вы можете использовать любой исходный файл Python в качестве модуля, выполнив оператор импорта в каком-либо другом исходном файле Python. импорт имеет следующий синтаксис —

10 

Когда интерпретатор встречает оператор импорта, он импортирует модуль, если модуль присутствует в пути поиска. Путь поиска — это список каталогов, в которых интерпретатор ищет перед импортом модуля. Например, чтобы импортировать модуль support.py, вам нужно поместить следующую команду в начало скрипта —

27

Когда приведенный выше код выполняется, он дает следующий результат —

31

Модуль загружается только один раз, независимо от того, сколько раз он был импортирован. Это предотвращает повторное выполнение модуля при многократном импорте.

импорт из... Заявление

Python из Оператор позволяет импортировать определенные атрибуты из модуля в текущее пространство имен. из...импорт имеет следующий синтаксис —

40

Например, чтобы импортировать функцию фибоначчи из модуля fib, используйте следующий оператор —

58

Этот оператор не импортирует весь модуль fib в текущее пространство имен; он просто вводит элемент фибоначчи из модуля fib в глобальную таблицу символов импортирующего модуля.

Импорт из... * Заявление

Также можно импортировать все имена из модуля в текущее пространство имен, используя следующий оператор импорта —

60

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

Поиск модулей

Когда вы импортируете модуль, интерпретатор Python ищет модуль в следующих последовательностях —

  • Текущий каталог.

  • Если модуль не найден, Python ищет каждый каталог в переменной оболочки PYTHONPATH.

  • Если ничего не помогает, Python проверяет путь по умолчанию. В UNIX этот путь по умолчанию обычно /usr/local/lib/python/.

Путь поиска модуля хранится в системном модуле sys как sys.path. переменная. Переменная sys.path содержит текущий каталог, PYTHONPATH и значение по умолчанию, зависящее от установки.

PYTHONPATH Переменная

PYTHONPATH — это переменная среды, состоящая из списка каталогов. Синтаксис PYTHONPATH такой же, как у переменной оболочки PATH.

Вот типичный PYTHONPATH из системы Windows —

72

А вот типичный PYTHONPATH из системы UNIX —

89

Пространства имен и область действия

Переменные — это имена (идентификаторы), которые сопоставляются с объектами. пространство имен представляет собой словарь имен переменных (ключей) и соответствующих им объектов (значений).

Оператор Python может обращаться к переменным в локальном пространстве имен. и в глобальном пространстве имен . Если локальная и глобальная переменные имеют одинаковое имя, локальная переменная заменяет собой глобальную переменную.

Каждая функция имеет собственное локальное пространство имен. Методы класса подчиняются тому же правилу области видимости, что и обычные функции.

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

Поэтому, чтобы присвоить значение глобальной переменной внутри функции, вы должны сначала использовать оператор global.

Оператор global VarName сообщает Python, что VarName является глобальной переменной. Python прекращает поиск переменной в локальном пространстве имен.

Например, мы определяем переменную Money в глобальном пространстве имен. В функции Деньги , мы назначаем Деньги значение, поэтому Python предполагает Деньги как локальная переменная. Однако мы получили доступ к значению локальной переменной Money перед его установкой, поэтому результатом является UnboundLocalError. Раскомментирование глобального оператора устраняет проблему.

99

Функция dir()

Встроенная функция dir() возвращает отсортированный список строк, содержащих имена, определенные модулем.

Список содержит имена всех модулей, переменных и функций, определенных в модуле. Ниже приведен простой пример —

Живая демонстрация
107

Когда приведенный выше код выполняется, он дает следующий результат —

114

Здесь специальная строковая переменная __name__ имя модуля, а __file__ имя файла, из которого был загружен модуль.

глобальные() и местные жители() Функции

глобальные() и местные жители() функции могут использоваться для возврата имен в глобальном и локальном пространствах имен в зависимости от места, откуда они вызываются.

Если locals() вызывается из функции, она возвращает все имена, к которым можно получить локальный доступ из этой функции.

Если globals() вызывается из функции, она возвращает все имена, к которым можно получить глобальный доступ из этой функции.

Тип возвращаемого значения обеих этих функций — словарь. Поэтому имена можно извлечь с помощью функции keys().

Функция reload() Функция

Когда модуль импортируется в скрипт, код в верхней части модуля выполняется только один раз.

Поэтому, если вы хотите повторно выполнить код верхнего уровня в модуле, вы можете использовать reload() функция. Функция reload() снова импортирует ранее импортированный модуль. Синтаксис функции reload() таков —

129

Здесь имя_модуля — это имя модуля, который вы хотите перезагрузить, а не строка, содержащая имя модуля. Например, чтобы перезагрузить hello модуль, сделайте следующее —

134

Пакеты в Python

Пакет – это иерархическая структура файловых каталогов, которая определяет единую среду приложения Python, состоящую из модулей, подпакетов, подподпакетов и т. д.

Рассмотрим файл Pots.py доступно в телефоне каталог. Этот файл имеет следующую строку исходного кода —

146

Аналогичным образом у нас есть еще два файла с разными функциями с тем же именем, что и выше —

  • Телефон/Isdn.py файл с функцией Isdn()

  • Телефон/G3.py файл с функцией G3()

Теперь создайте еще один файл __init__.py в Phone. каталог —

  • Телефон/__init__.py

Чтобы сделать все ваши функции доступными при импорте телефона, вам нужно поместить явные операторы импорта в __init__.py следующим образом:—

159

После добавления этих строк в __init__.py все эти классы будут доступны при импорте пакета Phone.

165

Когда приведенный выше код выполняется, он дает следующий результат —

178

В приведенном выше примере мы использовали пример одной функции в каждом файле, но вы можете сохранить несколько функций в своих файлах. Вы также можете определить различные классы Python в этих файлах, а затем создавать свои пакеты из этих классов.


Python

  1. Типы данных Python
  2. Ввод, вывод и импорт Python
  3. Операторы Python
  4. Аргументы функции Python
  5. Модули Python
  6. Словарь Питона
  7. Итераторы Python
  8. Замыкания Python
  9. Дата и время Python
  10. Модуль времени Python