Модули

Модули


Основы

Модуль - отдельный файл с разрешением .py, который можно подключать в другие питоньи программы и использовать. Обычно модуль содержит в себе классы и функции, чтобы в дальнейшем использовать их в других программах; писать вне функций крайне не приветствуется.

Итак, приступим: создадим файл module.py и напишем в него следующее.

print('Hello from module.py!')

Теперь создадим другой файл main.py в этой же папке, напишем:

import module

Это означает, что мы подключаемся модуль module в наш main.py. После запуска main.py выводится следующее:

Hello from module.py!

Но мы же не писали никаких принтов в коде, который запустили только что. В этом и суть подключаемых модулей, они сразу же выполняются при импорте в другие программы. Однако, обычно не требуется моментальное выполнение кода, именно поэтому как правило в модулях находятся классы и функциию.

Также, имеется возможность обращаться к переменным модуля, это часто используется при создании каких-то конфигов.

Дальше я написал комментарий с названием файла, с которым работаем, не путайтесь.

# config.py

name = 'Jake'

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

# main.py

import config

cf = config
print(cf.name)

На выход получаем 'Jake'.


Другие способы импорта

Создадим файл module.py для дальнейших примеров.

Всё, что сейчас будет показано, работает и для классов/функци и тд, использую переменные для простоты понимания.

# module.py

num1 = 15
num2 = 30
num3 = 45

Можем использовать конструкцию from <Название модуля> import <Атрибут 1> [ as <Псевдоним 1> ], [<Атрибут 2> [ as <Псевдоним 2> ] ...]

from module import num1 as number

print(number)

Output: 15.

Мы импоритруем из модуля переменную num1 и присваиваем сразу же значение новой локальной переменной number. То есть, мы взяли из module.py только одну переменную num1 и поместили значение в только что созданную number.

Звездочка означает, что мы импортируем всё. И теперь нам доступны все переменные из module.py

from module import *

print(num1 + num2 + num3)

Output: 90.


Стандартные модули

В комплекте с python сразу же идет так называемаая библиотека стандратных модулей, а их в свою очередь 200+ штук. Весь список и документация с официального сайта http://docs.python.org/library/. Возьмем небольшой пример.

import sys
print(sys.version)

Output: '3.6.7 (default, Oct 22 2018, 11:32:17) \n[GCC 8.2.0]'.

Модуль sys обеспечивает доступ к некоторым переменным и функциям, взаимодействующим с интерпретатором python.

Данный код просто выводит версию запущенного python.


Приоритет модулей

В порядке убывания этот список выглядит примерно так.

  • домашняя директория;
  • директории, указанные в переменной окружения PYTHONPATH;
  • директории Standard library;
  • пути прописанные в .pth файлах;
  • пакеты сторонних разработчиков.


Report Page