Оглавление
В-четвертых, определение пакета
5. Относительный импорт пакетов
Введение
В Python модуль — это файл, содержащий код Python. Пакет, с другой стороны, представляет собой каталог, содержащий несколько модулей. Модули и пакеты — это базовая организация повторного использования кода Python. В этой статье мы рассмотрим основы и использование модулей и пакетов Python.
При разработке основной компьютерной программы Интернета вещей мы неизбежно используем сторонние модули или наборы средств разработки, предоставленные разработчиками, чтобы помочь нам избавиться от утомительной работы и быстрее реализовать функции.
Во-вторых, импорт модуля
В Python мы можем импортировать модули с помощью оператора import. Вот несколько распространенных способов импорта модулей:
import math
import random as rand
from datetime import datetime
В приведенном выше коде первая инструкция импортирует стандартный модуль Python «math»; вторая инструкция импортирует модуль «random» и дает ему псевдоним «rand»; третья инструкция импортирует модуль «datetime». Импортируется класс « datetime » . .
3. Определение модуля
Мы также можем сами писать модули. Простой модуль Python состоит из файла, содержащего код Python с расширением «.py». Вот код примера модуля mymodule.py:
# mymodule.py
def greeting(name):
print(f"Hello, {name}!")
def add(x, y):
return x + y
Мы можем импортировать этот модуль с помощью оператора import и вызывать в нем функции:
import mymodule
mymodule.greeting("Alice") # 输出:Hello, Alice!
print(mymodule.add(1, 2)) # 输出:3
В-четвертых, определение пакета
Пакет — это каталог, содержащий несколько модулей . Простой пакет Python состоит из каталога, содержащего файл «__init__.py» и несколько файлов модулей «.py». Среди них файл __init__.py может быть пустым или содержать код для инициализации пакета. Ниже приведена структура каталогов примера пакета mypackage:
mypackage/
├── __init__.py
├── module1.py
└── module2.py
Среди них «module1.py» и «module2.py» — два модуля соответственно. Мы можем импортировать пакеты и модули с помощью оператора import :
import mypackage
from mypackage import module1, module2
module1.foo()
module2.bar()
Следует отметить, что при импорте пакета интерпретатор Python сначала будет искать в пакете файл ‘__init__.py’, выполнять код в нем, а затем импортировать необходимые модули .
5. Относительный импорт пакетов
Внутри пакета мы можем использовать относительный импорт для импорта модулей в том же пакете. Например, в «module1.py» в пакете «mypackage» мы можем импортировать «module2.py» со следующим оператором:
from . import module2
В приведенном выше выражении '.' указывает на текущий пакет . Вы также можете использовать двойные точки '..' для обозначения пакета верхнего уровня . Например, в «module1.py» в пакете «mypackage» мы можем импортировать «module2.py» в пакет «mypackage» со следующим оператором:
from .. import module2
В приведенном выше заявлении двойная точка указывает на пакет верхнего уровня. Обратите внимание, что относительный импорт можно использовать только внутри пакетов .
6. Пример кода
Вот полный пример кода о том, как писать модули и пакеты Python:
# mymodule.py
def greeting(name):
print(f"Hello, {name}!")
def add(x, y):
return x + y
# mypackage/__init__.py
print("Initializing mypackage...")
from . import module1
from . import module2
# mypackage/module1.py
def foo():
print("This is module1.")
# mypackage/module2.py
def bar():
print("This is module2.")
# main.py
import mymodule
import mypackage
from mypackage import module1, module2
mymodule.greeting("Alice") # 输出:Hello, Alice!
print(mymodule.add(1, 2)) # 输出:3
module1.foo() # 输出:This is module1.
module2.bar() # 输出:This is module2.
Запустив main.py, вы получите следующий результат:
Initializing mypackage...
Hello, Alice!
3
This is module1.
This is module2.
7. Резюме
Модули и пакеты Python являются фундаментальной организацией повторного использования кода Python . Импортируя модули и пакеты, мы можем повторно использовать код и повысить удобство сопровождения и повторного использования кода. В то же время мы также можем писать собственные модули и пакеты для повторного использования кода в проекте. При написании модулей и пакетов Python необходимо обратить внимание на использование относительного импорта и роль файлов __init__.py.