English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
В этой статье вы узнаете, как создавать и импортировать пользовательские модули на Python. Кроме того, вы также узнаете о различных методах импорта и использования настраиваемых и встроенных модулей в Python.
Модуль - это файл, содержащий Python-определения и определения.
Файлы, содержащие Python-код, такие как example.py, называются модулями, и их имя модуля - example.
Мы используем модули для разделения больших программ на управляемые kleine Dateien. Кроме того, модули предоставляют повторяемость кода.
Мы можем определить наиболее часто используемые функции в модуле и импортировать их, а не копировать их определение в другие программы.
Давайте создадим модуль. Введите следующее и сохраните его как example.py.
# Пример модуля Python def add(a, b): """Эта программа суммирует два числа" и возвращает результат сложения "" result = a + b return result
Здесь мы определяем функцию add() в модуле под названием example.Функция. Эта функция принимает два числа и возвращает их сумму.
Мы можем импортировать определения изнутри модуля в другой модуль или интерактивный интерпретатор Python.
Чтобы это сделать, мы используем ключевое слово import. Чтобы импортировать ранее определенный модуль, введите следующее в интерпретатор Python.
>>> import example
Это не вносит определение функции directly в текущий символ таблицы, а только вносит имя модуля here.
Используя имя модуля, мы можем использовать точечный оператор . для доступа к функциям. Например:
>>> example.add(4, 5.5) 9.5
Python имеет множество доступных стандартных модулей.
Вы можете проверитьСтандартные модули PythonПолный список и их用途. Эти файлы находятся в каталоге Lib в месте установки Python.
Мы можем импортировать стандартные модули, как пользовательские модули.
Есть несколько способов импортировать модули. Они перечислены следующим образом.
Мы можем импортировать модуль с помощью строки import и использовать точечный оператор для доступа к его внутренним определениям, как указано выше. Это пример.
# Пример импортирующей строки # Импортируем стандартный модуль математики import math print("Значение π", math.pi)
При выполнении этого программы, вывод будет следующим:
Значение π 3.141592653589793
Мы можем импортировать модуль с помощью такой переименовки.
# Переименовываем импортируемый модуль import math as m print("Значение π", m.pi)
Мы переименовали модуль math в m. В некоторых случаях это может сэкономить нам время на письме.
Пожалуйста, обратите внимание, что имя math в нашем диапазоне не может быть распознано. Поэтому math.pi недействителен, а m.pi - правильный способ использования.
Мы можем импортировать конкретные имена из модуля, не импортируя весь модуль целиком. Это пример.
# Импорт только 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 проверяет несколько мест. Интерпретатор сначала ищет встроенный модуль, а затем (если его не находят) переходит в определенный список каталогов 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() для поиска имён, определённых в модуле.
Например, в начальном модуле 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'