Модуль импорта в Python с примерами
Какие модули есть в Python?
Модуль — это файл с кодом Python. Код может быть в виде переменных, функций или определенных классов. Имя файла становится именем модуля.
Например, если имя вашего файла guru99.py, имя модуля будет guru99. . С функциональностью модуля вы можете разбить свой код на разные файлы вместо того, чтобы писать все в одном файле.
Из этого руководства вы узнаете:
- Что такое модули в Python?
- Модуль импорта Python
- Как создать и импортировать модуль в Python?
- Импорт класса в Python
- Использование модуля from для импорта
- Импорт всего из модуля
- Использование модуля импорта
- Использование импорта *
- Функция dir()
- Пакеты
- PathonModuleSearchPath
- Использование псевдонима модуля при импорте
- Абсолютный и относительный импорт в Python
- Использование AbsoluteImports
- Использование относительных импортов
Что такое модуль импорта Python?
Файл рассматривается как модуль в python. Чтобы использовать модуль, вы должны импортировать его с помощью импорта ключевое слово. Функцию или переменные, находящиеся внутри файла, можно использовать в другом файле, импортировав модуль. Эта функция доступна на других языках, таких как typescript, JavaScript, java, ruby и т. д.
Как создать и импортировать модуль в Python?
Теперь мы создадим модуль и импортируем его в другой файл.
Вот процесс создания и импорта модуля, как показано на снимке экрана:
Следуйте инструкциям по созданию модуля в Python.
Структура папок, используемая для тестирования кода, выглядит следующим образом:
06
Шаг 1) Создайте файл и назовите его test.py
Шаг 2) Внутри test.py создайте функцию display_message()
15пре>Шаг 3) Теперь создайте еще один файл display.py.
Шаг 4) Внутри display.py импортируйте файл moduletest.py, как показано ниже:
23При импорте вам не нужно упоминать test.py, а только имя файла.
Шаг 5)
Затем вы можете вызвать функцию display_message() из test.py внутри display.py, вам нужно использовать module_name.function_name.
Например, test.display_message().
37Шаг 6)
При выполнении display.py вы получите следующий вывод:
45Импорт класса в Python
Ранее мы видели простой модуль с функцией. Здесь будет создан класс и ссылка на класс внутри другого файла.
Структура папок для тестирования кода выглядит следующим образом:
53Создайте файл с именем Car.py со следующим кодом:
Имя файла:Car.py
66В файле Car.py есть атрибуты brand_name, model и manu_year. Внутри класса определены следующие функции:car_details(), get_Car_brand(), get_Car_model().
Давайте теперь используем файл Car.py в качестве модуля в другом файле с именем display.py.
Имя файла:display.py
78Вывод:
84Таким образом, мы можем получить доступ ко всем переменным и функциям из Car.py с помощью модуля Car.
Использование модуля from для импорта
Вы можете импортировать только небольшую часть модуля, т. е. только необходимые функции и имена переменных из модуля вместо того, чтобы импортировать полный код.
Если вы хотите импортировать только определенные вещи, вы можете использовать ключевое слово «от», чтобы импортировать то, что вы хотите.
Итак, синтаксис
94Структура папок, используемая для тестирования кода, выглядит следующим образом:
102В test.py есть 2 функции, как показано:
Имя файла:test.py
119Теперь вам нужна функция display_message(). К импортируемой функции или переменной можно получить прямой доступ, как показано ниже:
Имя файла:display.py
124Вывод:
139Теперь, если вы используете функцию display_message1(), она выдаст ошибку, что функция не определена, как показано ниже:
141Вывод:
154Импорт всего из модуля
Импорт позволяет вам импортировать полный модуль, используя импорт, за которым следует имя модуля, т. е. имя файла или используемая библиотека.
Синтаксис:
160Или с помощью
174Структура папок, используемая для тестирования кода, выглядит следующим образом:
181Ниже приведены подробности кода внутри test.py
192Использование модуля импорта
Используя только имя модуля импорта, чтобы ссылаться на переменные и функции внутри модуля, он должен иметь префикс с именем модуля.
Пример
Имя файла:display.py
207Тест имени модуля используется для ссылки на функцию и переменные внутри теста модуля.
Вывод:
214Использование импорта *
Давайте рассмотрим пример с использованием import * . Использование импорта * , функции и переменные доступны напрямую, как показано в примере ниже:
224Вывод:
233Функция dir()
dir() — это встроенная функция в python. dir() возвращает все свойства и методы, включая встроенные свойства данного объекта.
Поэтому, когда dir() используется в модуле, он дает вам переменные, функции, которые присутствуют внутри модуля.
Вот рабочий пример dir() в модуле. У нас есть класс с именем Car.py, давайте импортируем Car и назначим его dir(), чтобы увидеть результат.
Структура папок для тестирования кода будет следующей:
246Имя файла:Car.py
256Имя файла:test.py
260Вывод дает нам имя класса и все функции, определенные в Car.py.
Вы также можете попробовать использовать dir() во встроенном модуле, доступном в Python. Давайте попробуем то же самое на json модуль, как показано в примере ниже. Он отобразит все свойства и методы, доступные в json . модуль.
274Вывод:
289Пакеты
Пакет — это каталог со всеми модулями, определенными внутри него. Чтобы интерпретатор Python рассматривал его как пакет, в вашем каталоге должен быть файл init.py. init.py создает каталог как пакет. Вот макет пакета, над которым мы собираемся работать.
![]()
Имя пакета — мой пакет. . Чтобы начать работу с пакетом, создайте каталог с именем package/. Внутри каталога создайте пустой файл с именем __init__.py. Создайте еще 3 файла module1.py, module2.py и module3.py и определите функции, как показано на снимке экрана. Вот подробная информация о module1.py,module2.py и module3.py
module1.py
290module2.py
309module3.py
312Пакет готов к использованию. Теперь вызовите пакет внутри любого вашего файла, как показано ниже :test.py:
Здесь импортируется mypackage.module1, которому присваивается псевдоним mod1. Точно так же вы можете использовать другие модули module2.py и module3.py из моего пакета.
322Вывод:
335Мы только что продемонстрировали пакет с простым модулем с функциями внутри него. В соответствии с вашим проектом вы также можете упаковать с помощью подпакетов. Подпапки/, имеющие модули с определенными классами.
Путь поиска модуля Python
Во время выполнения, когда python встречает импорт имени модуля , интерпретатор пытается найти модуль. Он ищет модуль в списке встроенных модулей. Позже все каталоги, определенные внутри sys.path.
Подводя итог, интерпретатор выполняет следующий поиск, чтобы найти модуль:
- В вашем текущем каталоге.
- В списке встроенных модулей
- В каталогах sys.path
Вы можете получить подробную информацию о sys.path, импортировав модуль sys и распечатав sys.path. Это даст вам список каталогов, как показано ниже:
349Вывод:
359Вы также можете изменить путь и сохранить каталоги в соответствии с вашими требованиями.
Использование псевдонима модуля в импорте
Вы также можете преобразовать имя модуля в более короткую форму, дав ему псевдоним. Псевдоним можно задать с помощью ключевого слова.
Синтаксис:
361Структура папок для тестирования кода будет следующей:
373Ниже приведен код внутри test.py
382Теперь будет использоваться псевдоним для test.py в display.py
398Псевдоним, который используется для тестового модуля, — t . Таким образом, на функцию и переменные из test.py можно ссылаться с помощью псевдонима t.
Вывод:
401Абсолютный и относительный импорт в Python
Теперь вы знаете, как импортировать файл как модуль внутри другого файла. Давайте теперь посмотрим, как управлять файлами, доступными в папках. Файлы в папках можно импортировать с помощью абсолютного или относительного импорта.
Учтите, что у вас есть структура папок проекта, как показано ниже:
![]()
Корневая папка — это мой проект/. Он имеет две подпапки package1 и package2.
Папка package1 содержит два модуля:module1.py и module2.py.
В папке package2 есть один класс myclass.py, подпакет subpkg с модулем3.py и последний модуль4.py.
- В файле module1.py есть функция myfunc1.
- В module2.py есть функция myfunc2.
- В module3.py есть функция myfunc3.
- В module4.py есть функция myfunc4.
Использование абсолютного импорта
Для абсолютного импорта вам необходимо добавить полный путь к вашему модулю прямо из корневой папки проекта.
Давайте теперь посмотрим, как использовать абсолютный импорт для ссылки на функции, присутствующие в каждом из модулей.
Для работы с функцией myfunc1 вам потребуется выполнить импорт следующим образом:
414
Для работы с функцией myfunc3 вам потребуется выполнить импорт следующим образом:
428
Преимущества и недостатки использования абсолютного импорта
Вот преимущества использования абсолютного импорта:
- Становится легко отследить модули для проверки кода.
- Простой в использовании и очень простой.
- Если проект перемещается по другому пути, импорт останется прежним.
Недостатки абсолютного импорта
Вот недостатки использования абсолютного импорта:
Недостатки:
- Путь импорта может быть очень длинным, если модули вложены друг в друга, а имена модулей длинные.
Использование относительного импорта
Учитывая ту же структуру папок, упомянутую ниже, мы увидим, как импортировать то же самое, используя относительный импорт.
При относительном импорте модуль, который нужно импортировать, относится к текущему местоположению, которое является местом, где присутствует оператор импорта.
Синтаксис:
При относительном импорте необходимо добавить точку (.) перед именем модуля при импорте с использованием from .
Это будет 2 точки (..) перед именем модуля, если модуль находится на один уровень выше текущего местоположения.
Ссылаясь на рисунок структуры папок, упомянутый выше, у нас есть следующие модули с их функциями, на которые нам нужно ссылаться.
- В файле module1.py есть функция myfunc1.
- В module2.py есть функция myfunc2.
- В module3.py есть функция myfunc3.
- В module4.py есть функция myfunc4.
Для работы с функцией myfunc1 вам потребуется импортировать следующим образом:
432
Для работы с функцией myfunc3 вам потребуется выполнить импорт следующим образом:
441
Преимущества относительного импорта
Преимущества:
- С относительным импортом легко работать.
- Из текущего местоположения импорт может быть сокращен по сравнению с абсолютным импортом.
Недостатки относительного импорта
Недостатки:
- При использовании относительного импорта трудно отследить, где находится код.
Обзор:
- Импорт в Python помогает ссылаться на код, т. е. на .функции/объекты, записанные в другом файле. Он также используется для импорта библиотек/пакетов Python, которые устанавливаются с помощью pip (менеджер пакетов Python), и затем вам необходимо использовать их в своем коде.
- Функции импорта доступны на других языках, таких как typescript, JavaScript, java, ruby и т. д.
- Модуль — это код, написанный внутри файла, например (test.py). Внутри вашего файла вы можете определить свои переменные, функции или класс. Весь файл становится модулем и может быть импортирован в другой файл для ссылки на код.
- Благодаря функциям модуля вы можете разбить свой код на разные файлы вместо того, чтобы записывать все в один файл. Позже, используя импорт, вы можете обратиться к коду внутри нужного вам файла.
- Python имеет встроенные модули, а также внешние библиотеки/пакеты, установленные с помощью диспетчера пакетов Python (pip), например, pandas, NumPy и т. д., которые называются модулями.
- Вы можете импортировать только небольшую часть модуля, т. е. только необходимые функции и имена переменных из модуля, вместо того, чтобы импортировать полный код.
- Вы также можете преобразовать имя модуля в более короткую форму, присвоив ему псевдоним. Псевдоним можно сделать с помощью ключевого слова.
- Пакет — это каталог, в котором определены все модули. Чтобы интерпретатор Python рассматривал его как пакет, в вашем каталоге должен быть файл __init.py. init.py создает каталог как пакет. Вот макет пакета, над которым мы собираемся работать.
- Во время выполнения, когда python встречает импорт имени модуля , интерпретатор пытается найти модуль. Он ищет модуль в списке встроенных модулей. Позже все каталоги, определенные внутри sys.path.
- Для абсолютного импорта необходимо добавить полный путь к вашему модулю прямо из корневой папки проекта.
- При относительном импорте модуль, который нужно импортировать, относится к текущему местоположению, которое является местом, где присутствует оператор импорта.
Python
- Модули Python
- Количество строк Python() с ПРИМЕРАМИ
- Python String format() Объясните с ПРИМЕРАМИ
- Метод Python String find() с примерами
- Лямбда-функции Python с ПРИМЕРАМИ
- Функция Python round() с ПРИМЕРАМИ
- Функция Python map() с ПРИМЕРАМИ
- Python Timeit() с примерами
- Счетчик Python в коллекциях с примером
- type() и isinstance() в Python с примерами