English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Основной курс Python

Контроль потока в Python

Функции Python

Типы данных Python

Файловые операции в Python

Объекты и классы в Python

Даты и время в Python

Продвинутые знания Python

Руководство по Python

Модули Python

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

Что такое модуль в Python?

Модуль - это файл, содержащий Python-определения и определения.

Файлы, содержащие Python-код, такие как example.py, называются модулями, и их имя модуля - example.

Мы используем модули для разделения больших программ на управляемые kleine Dateien. Кроме того, модули предоставляют повторяемость кода.

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

Давайте создадим модуль. Введите следующее и сохраните его как example.py.

# Пример модуля Python
def add(a, b):
   """Эта программа суммирует два числа"
       и возвращает результат сложения ""
   result = a + b
   return result

Здесь мы определяем функцию add() в модуле под названием example.Функция. Эта функция принимает два числа и возвращает их сумму.

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

Мы можем импортировать определения изнутри модуля в другой модуль или интерактивный интерпретатор Python.

Чтобы это сделать, мы используем ключевое слово import. Чтобы импортировать ранее определенный модуль, введите следующее в интерпретатор Python.

>>> import example

Это не вносит определение функции directly в текущий символ таблицы, а только вносит имя модуля here.

Используя имя модуля, мы можем использовать точечный оператор . для доступа к функциям. Например:

>>> example.add(4, 5.5)
9.5

Python имеет множество доступных стандартных модулей.

Вы можете проверитьСтандартные модули PythonПолный список и их用途. Эти файлы находятся в каталоге Lib в месте установки Python.

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

Есть несколько способов импортировать модули. Они перечислены следующим образом.

Строка импорта Python

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

# Пример импортирующей строки
# Импортируем стандартный модуль математики
import math
print("Значение π", math.pi)

При выполнении этого программы, вывод будет следующим:

Значение π 3.141592653589793

Переименовка импорта

Мы можем импортировать модуль с помощью такой переименовки.

# Переименовываем импортируемый модуль
import math as m
print("Значение π", m.pi)

Мы переименовали модуль math в m. В некоторых случаях это может сэкономить нам время на письме.

Пожалуйста, обратите внимание, что имя math в нашем диапазоне не может быть распознано. Поэтому math.pi недействителен, а m.pi - правильный способ использования.

Конструкция from ... import Python

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

# Импорт только pi из модуля математики
from math import pi
print("Значение π", pi)

Мы импортируем только атрибут pi из модуля.

В этом случае мы не используем точечный оператор. Мы можем импортировать несколько свойств следующим образом.

>>> from math import pi, e
>>> pi
3.141592653589793
>>> e
2.718281828459045

Импорт всех имен

Мы можем использовать следующую конструкцию для импорта всех имен (определений) из модуля.

# Импорт всех имен из стандартного модуля math
from math import *
print("Значение pi", pi)

Мы импортировали все определения из модуля математики. Это делает все имена, кроме подчеркивающего beginning, видимыми в нашем диапазоне.

Импорт всех содержимого с символом астерisks (*) не является хорошей практикой программирования. Это может привести к повторному определению идентификаторов. Это также может повлиять на читаемость нашего кода.

Путь поиска модулей Python

При импорте модуля Python проверяет несколько мест. Интерпретатор сначала ищет встроенный модуль, а затем (если его не находят) переходит в определенный список каталогов sys.path. Поиск ведется в этой последовательности.

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

  • PYTHONPATH (список каталогов в переменной окружения).

  • По умолчанию каталоги, связанные с установкой.

>>> import sys
>>> sys.path
['',
'C:\\Python33\\Lib\\idlelib',
'C:\\Windows\\system32\\python33.zip',
'C:\\Python33\\DLLs',
'C:\\Python33\\lib',
'C:\\Python33',
'C:\\Python33\\lib\\site-packages'

Мы можем добавить или изменить этот список, чтобы добавить наш собственный путь.

Перезагрузка модуля

Интерпретатор Python импортирует модуль всего один раз за сеанс. Это делает вещи более эффективными. Это пример, который объясняет, как это работает.

Предположим, что в модуле, называемом my_module, есть следующий код.

# Этот модуль显示了
# Множественные импорты и повторное добавление
print("Это段 кода被执行")

Теперь мы видим эффект множественного импорта.

>>> import my_module
Этот код был выполнен
>>> import my_module
>>> import my_module

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

Теперь, если наш модуль изменяется в процессе выполнения программы, нам придётся перезагрузить его. Один из способов - перезапустить интерпретатор. Но это не очень помогает.

Python предоставляет простое решение. Мы можем использовать функцию reload() модуля inside imp для перезагрузки модуля. Как это делается.

>>> import imp
>>> import my_module
Этот код был выполнен
>>> import my_module
>>> imp.reload(my_module)
Этот код был выполнен
<модуль 'my_module' из '.\my_module.py'>

Внутренняя функция dir()

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

Например, в начальном модуле example мы определили функцию add().

>>> dir(example)
'__builtins__',
'__cached__',
'__doc__',
'__file__',
'__initializing__',
'__loader__',
'__name__',
'__package__',
'add'

Здесь мы видим отсортированный список имён (и add). Все имена, начинающиеся с подчёркивания, являютсяDefault Python attribute (we did not define them ourselves).

Например, атрибут __name__ содержит имя модуля.

>>> import example
>>> example.__name__
'example'

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

>>> a = 1
>>> b = "hello"
>>> import math
>>> dir()
'__builtins__', '__doc__', '__name__', 'a', 'b', 'math', 'pyscripter'