Skip to content

Подключение модулей

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

Подключение модуля

Подключить модуль можно с помощью инструкции import. К примеру, подключим модуль os для получения текущей директории:

>>>
>>> import os
>>> os.getcwd()
'C:\\Python33'

После ключевого слова import указывается название модуля. Одной инструкцией можно подключить несколько модулей, хотя этого не рекомендуется делать, так как это снижает читаемость кода. Импортируем модули time и random:

>>>
>>> import time, random
>>> time.time()
1376047104.056417
>>> random.random()
0.9874550833306869

После импорта модуля его название становится переменной, через которую можно получить доступ к атрибутам модуля. Например, можно обратиться к константе e, расположенной в модуле math:

>>>
>>> import math
>>> math.e
2.718281828459045

Стоит отметить: если указанный атрибут модуля не будет найден, вызовется исключение AttributeError. А если не удастся найти модуль для импорта, то ImportError.

>>>
>>> import notexist
Traceback (most recent call last):
  File "", line 1, in
    import notexist
ImportError: No module named 'notexist'
>>> import math
>>> math.Ё
Traceback (most recent call last):
 File "", line 1, in
   math.Ё
AttributeError: 'module' object has no attribute 'Ё'

Использование псевдонимов

Если название модуля слишком длинное, то для него можно создать псевдоним с помощью ключевого слова as:

>>>
>>> import math as m
>>> m.e
2.718281828459045

Теперь доступ ко всем атрибутам модуля math осуществляется только с помощью переменной m, а переменной math в этой программе уже не будет (если, конечно, вы после этого не напишете import math, тогда модуль будет доступен как под именем m, так и под именем math). Инструкция from Подключить определенные атрибуты модуля можно с помощью инструкции from. Она имеет несколько форматов:

>>>
>>> from <Название модуля> import <Атрибут 1> [ as <Псевдоним 1> ], [<Атрибут 2> [ as <Псевдоним 2> ] ...]
>>> from <Название модуля> import *
>>>

Первый формат позволяет подключить из модуля только указанные вами атрибуты. Для длинных имен также можно назначить псевдоним, указав его после ключевого слова as.

>>>
>>> from math import e, ceil as c
>>> e
2.718281828459045
>>> c(4.6)
5

Импортируемые атрибуты можно разместить на нескольких строках; если их много, для лучшей читаемости кода можно написать так:

>>>
>>> from math import (sin, cos,
...          tan, atan)

Второй формат инструкции from позволяет подключить все переменные из модуля. Для примера импортируем все атрибуты из модуля sys:

>>>
>>> from sys import *
>>> version
'3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)]'
>>> version_info
sys.version_info(major=3, minor=3, micro=2, releaselevel='final', serial=0)

Следует заметить, что не все атрибуты будут импортированы. Если в модуле определена переменная all (список атрибутов, которые могут быть подключены), то будут подключены только атрибуты из этого списка. Если переменная all не определена, то будут подключены все атрибуты, не начинающиеся с нижнего подчеркивания. Кроме того, необходимо учитывать, что импортирование всех атрибутов из модуля может нарушить пространство имен главной программы, так как переменные, имеющие одинаковые имена, будут перезаписаны.