Импортировать модуль в Python с примерами
⚡ Умное резюме
Импортировать в Python Позволяет одному файлу повторно использовать переменные, функции и классы, определенные в другом. Модуль — это просто файл с расширением .py, тогда как пакет группирует связанные модули внутри каталога, обозначенного файлом __init__.py.

В разделах ниже объясняется, что такое модули, пакеты, различные стили импорта, а также как работают абсолютный и относительный импорт. Python.
Какие модули есть в Python?
Модуль — это файл с Python Код. Код может быть представлен в виде переменных, функций или определенного класса. Имя файла становится именем модуля.
Например, если имя вашего файла — guru99.py, имя модуля будет guru99. Благодаря функциональности модуля вы можете разбить свой код на разные файлы вместо того, чтобы писать все в одном файле.
В чём Python модуль импорта?
Файл считается модулем в PythonДля использования модуля необходимо импортировать его с помощью... Импортировать ключевое слово. Функции или переменные, находящиеся внутри файла, можно использовать в другом файле, импортировав модуль. Эта функциональность доступна и в других языках, таких как... TypeScript, Javaсценарий, Java, Руби и т.д.
Как создать и импортировать модуль в Python?
Теперь мы создадим модуль и импортируем его в другой файл.
Вот процесс создания и импорта модуля, как показано на снимке экрана:
Следуйте инструкциям, чтобы создать модуль в Python.
Структура папок, используемая для тестирования кода, следующая:
modtest/ test.py display.py
Шаг 1) Создайте файл и назовите его test.py.
Шаг 2) Внутри test.py создайте функцию display_message().
Def display_message():
return "Welcome to Guru99 Tutorials!"
Шаг 3) Теперь создайте еще один файл display.py.
Шаг 4) Внутри файла display.py импортируйте модуль test.py, как показано ниже:
import test
При импорте указывать файл test.py необязательно, достаточно лишь его имени.
Шаг 5) Затем вы можете вызвать функцию display_message() из файла test.py внутри файла display.py. Вам нужно использовать module_name.function_name.
Например test.display_message().
Import test
print(test.display_message())
Шаг 6) При выполнении файла display.py вы получите следующее. Выход:
Welcome to Guru99 Tutorials!
Импорт класса в Python
Ранее мы рассмотрели простой модуль с функцией. Здесь же мы создадим класс и будем ссылаться на него в другом файле.
Структура папок для тестирования кода выглядит следующим образом:
myproj/ Car.py display.py
Создайте файл Car.py со следующим кодом:
Имя файла: Car.py
class Car: brand_name = "BMW" model = "Z4" manu_year = "2020" def __init__(self, brand_name, model, manu_year): self.brand_name = brand_name self.model = model self.manu_year = manu_year def car_details(self): print("Car brand is ", self.brand_name) print("Car model is ", self.model) print("Car manufacture year is ", self.manu_year) def get_Car_brand(self): print("Car brand is ", self.brand_name) def get_Car_model(self): print("Car model is ", self.model)
В файле Car.py есть атрибуты brand_name, model и manu_year. Функции, определенные внутри класса, это car_details(), get_Car_brand(), get_Car_model().
Давайте теперь используем файл Car.py в качестве модуля в другом файле с именем display.py.
Имя файла: display.py
import Car car_det = Car.Car("BMW","Z5", 2020) print(car_det.brand_name) print(car_det.car_details()) print(car_det.get_Car_brand()) print(car_det.get_Car_model())
Выход:
BMW Car brand is BMW Car model is Z5 Car manufacture year is 2020 Car brand is BMW Car model is Z5
Таким образом, мы можем получить доступ ко всем переменным и функциям из файла Car.py, используя модуль Car.
Использование модуля from для импорта
Вы можете импортировать только небольшую часть модуля, то есть только необходимые функции и имена переменных, вместо импорта всего кода.
Если вам нужно импортировать только определенные элементы, вы можете использовать ключевое слово «from», чтобы импортировать нужные вам данные.
Итак, синтаксис
from module import your function_name , variables,... etc.
Структура папок, используемая для тестирования кода, следующая:
modtest/ test.py display.py
В файле test.py есть две функции, как показано ниже:
Имя файла: test.py
defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Теперь вам нужна функция display_message(). Доступ к импортируемой функции или переменной можно получить напрямую, как показано ниже:
Имя файла: display.py
from test import display_message print(display_message())
Выход:
Welcome to Guru99 Tutorials!
Если вы воспользуетесь функцией display_message1(), возникнет ошибка, указывающая на то, что функция не определена, как показано ниже:
from test import display_message print(display_message1())
Выход:
Traceback (most recent call last): File "display.py", line 3, in <module> print(display_message1()) Name Error: name 'display_message1' is not defined
Импорт всего из модуля
Команда `import` позволяет импортировать весь модуль целиком, указав в качестве аргумента имя модуля, например, имя файла или название используемой библиотеки.
Синтаксис:
Import module
Или используя
from module import *
Структура папок, используемая для тестирования кода, следующая:
modtest/ test.py display.py
Ниже приведены детали кода внутри test.py.
my_name = "Guru99" my_address = "Mumbai" defdisplay_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Использование модуля импорта
Для обращения к переменным и функциям внутри модуля, используя только имя импортируемого модуля, необходимо добавить перед ними префикс с именем модуля.
Пример
Имя файла: display.py
Import test print(test.display_message()) print(test.display_message1()) print(test.my_name) print(test.my_address)
Название модуля test используется для обозначения функций и переменных внутри модуля test.
Выход:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Использование импорта *
Давайте посмотрим пример использования Импортировать *, С помощью Импортировать *, функции и переменные доступны напрямую, как показано в примере ниже:
from test import * print(display_message()) print(display_message1()) print(my_name) print(my_address)
Выход:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Функция реж( )
Функция `dir()` является встроенной функцией в PythonФункция `dir()` возвращает все свойства и методы, включая встроенные свойства заданного объекта.
Таким образом, при использовании функции `dir()` для модуля вы получите список переменных и функций, присутствующих внутри модуля.
Вот рабочий пример использования функции dir() в модуле. У нас есть класс Car.py, давайте импортируем Car и присвоим его переменной dir(), чтобы увидеть результат.
Структура папок для тестирования кода будет следующей:
test prop/ Car.py test.py
Имя файла: Car.py
class Car: brand_name = "BMW" model = "Z4" manu_year = "2020" def __init__(self, brand_name, model, manu_year): self.brand_name = brand_name self.model = model self.manu_year = manu_year def car_details(self): print("Car brand is ", self.brand_name) print("Car model is ", self.model) print("Car manufacture year is ", self.manu_year) def get_Car_brand(self): print("Car brand is ", self.brand_name) def get_Car_model(self): print("Car model is ", self.model)
Имя файла: test.py
import Car class_contents = dir(Car) print(class_contents)
Вывод дает нам имя класса и всех функций, определенных в Car.py.
Вы также можете попробовать использовать dir() во встроенном модуле, доступном в PythonДавайте попробуем то же самое на JSON Модуль, как показано в примере ниже. Он отобразит все свойства и методы, доступные в модуле. JSON модуль.
Import json
json_details = dir(json)
print(json_details)
Выход:
['JSONDecodeError', 'JSONDecoder', 'JSONEncoder', '__all__', '__author__', '__bu iltins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__pac kage__', '__path__', '__spec__', '__version__', '_default_decoder', '_default_en coder', 'codecs', 'decoder', 'detect_encoding', 'dump', 'dumps', 'encoder', 'loa d', 'loads', 'scanner']
Packages
Пакет — это каталог, в котором определены все модули. Чтобы сделать Python Интерпретатор рассматривает это как пакет, в вашей директории должен находиться файл __init__.py. Файл __init__.py превращает директорию в пакет. Вот структура пакета, с которым мы будем работать.
Название пакета мой пакетДля начала работы с пакетом создайте директорию с именем mypackage/. Внутри этой директории создайте пустой файл с именем __init__.py. Создайте еще 3 файла: module1.py, module2.py и module3.py и определите функции, как показано на скриншоте. Ниже приведены подробности о файлах module1.py, module2.py и module3.py.
модуль1.py
def mod1_func1(): print("Welcome to Module1 function1") def mod1_func2(): print("Welcome to Module1 function2") def mod1_func3(): print("Welcome to Module1 function3")
модуль2.py
def mod2_func1(): print("Welcome to Module2 function1") def mod2_func2(): print("Welcome to Module2 function2") def mod2_func3(): print("Welcome to Module2 function3")
модуль3.py
def mod3_func1(): print("Welcome to Module3 function1") def mod3_func2(): print("Welcome to Module3 function2") def mod3_func3(): print("Welcome to Module3 function3")
пакет Пакет готов к использованию. Теперь вызовите его в любом из ваших файлов, как показано ниже в test.py:
Здесь mypackage.module1 импортируется и получает псевдоним как mod1Аналогичным образом вы можете использовать другие модули module2.py и module3.py из пакета mypackage.
import mypackage.module1 as mod1 print(mod1.mod1_func1()) print(mod1.mod1_func2()) print(mod1.mod1_func2())
Выход:
Welcome to Module1 function1 None Welcome to Module1 function2 None Welcome to Module1 function2 None
Мы только что продемонстрировали работу пакета на примере простого модуля с функциями внутри. В соответствии с вашим проектом, вы также можете создавать пакеты, содержащие подпакеты, то есть подпапки с модулями, в которых определены классы.
Python Путь поиска модуля
Во время исполнения, когда Python наткнулся имя модуля импортаИнтерпретатор пытается найти модуль. Он ищет модуль во встроенном списке модулей, а затем во всех каталогах, определенных в sys.path.
Подводя итог, интерпретатор выполняет следующий поиск, чтобы найти модуль:
- В вашем текущем каталоге.
- В списке встроенных модулей.
- Внутри каталогов sys.path.
Получить подробную информацию о sys.path можно, импортировав модуль sys и выведя его на экран. В результате вы получите список каталогов, как показано ниже:
importsys
print(sys.path)
Выход:
['Python Latest\\task2', 'Users\\AppData\\Local\\Programs\\Python\ \Python37\\python37.zip', 'Users\\AppData\\Local\\Programs\\Python\\P ython37\\DLLs']
Вы также можете изменить путь и сохранить каталоги в соответствии с вашими требованиями.
Использование псевдонима модуля при импорте
Вы также можете преобразовать имя модуля в более короткую форму, присвоив ему псевдоним. Псевдоним можно создать с помощью... as ключевое слово.
Синтаксис:
import filename as alias name
Структура папок для тестирования кода будет следующей:
Mod test/ test.py display.py
Ниже приведен код внутри test.py.
my_name = "Guru99" my_address = "Mumbai" def display_message(): return "Welcome to Guru99 Tutorials!" def display_message1(): return "All about Python!"
Теперь мы будем использовать псевдоним для test.py в display.py.
Import test as t print(t.display_message()) print(t.display_message1()) print(t.my_name) print(t.my_address)
Для модуля тестирования используется псевдоним t. Таким образом, к функциям и переменным из файла test.py можно обращаться, используя псевдоним t.
Выход:
Welcome to Guru99 Tutorials! All about Python! Guru99 Mumbai
Абсолютный и относительный импорт в Python
Теперь вы знаете, как импортировать файл как модуль внутри другого файла. Давайте теперь посмотрим, как управлять файлами, доступными в папках. Файлы в папках можно импортировать с помощью абсолютного или относительного импорта.
Предположим, у вас есть структура папок проекта, как показано ниже:
Корневая папка — myproject/. В ней находятся две подпапки: 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 необходимо импортировать её следующим образом:
from package1.module1 import myfunc1 or from package1 import module1 module1.myfunc1()
Для работы с функцией myfunc3 необходимо импортировать её следующим образом:
from package1.subpkg.module3 import myfunc3 or from package1.subpkg import module3 module3.myfunc3()
Преимущества и недостатки использования абсолютного импорта
Вот преимущества использования абсолютного импорта:
- Это становится легко tracВерните модули для проверки кода.
- Простой в использовании и очень простой.
- Если проект будет перенаправлен на другой путь, импорт останется прежним.
Недостатки использования абсолютного импорта
Вот недостатки использования абсолютного импорта:
- Путь импорта может стать очень длинным, если модули вложены друг в друга, а имена модулей длинные.
Использование относительного импорта
Рассматривая описанную выше структуру папок, мы увидим, как импортировать файлы с помощью относительного импорта.
При относительном импорте модуль, подлежащий импорту, указывается относительно текущего местоположения, то есть места, где находится инструкция импорта.
Синтаксис
При относительном импорте вам необходимо добавить точку (.) перед именем модуля при импорте с использованием от.
Если модуль находится на один уровень выше текущего местоположения, перед его названием будут стоять две точки (..).
Обращаясь к приведенной выше структуре папок, мы видим следующие модули с их функциями, на которые нам необходимо сослаться.
- В файле module1.py есть функция с именем myfunc1.
- В файле module2.py есть функция с именем myfunc2.
- В файле module3.py есть функция с именем myfunc3.
- В файле module4.py есть функция с именем myfunc4.
Для работы с функцией myfunc1 необходимо импортировать её следующим образом:
from .module1 import myfunc1
Для работы с функцией myfunc3 необходимо импортировать её следующим образом:
from .subpkg.module3 import myfunc3
Преимущества относительного импорта
- С относительным импортом легко работать.
- Из текущего местоположения импорт может быть сокращен по сравнению с абсолютным импортом.
Недостатки относительного импорта
- Используя относительный импорт, сложно tracВернитесь туда, где находится код.



