Подключение модуля к программе на Python осуществляется с помощью оператора >import
. У него есть две формы: >import
и >from–import
:
>import os
>import pre as re
>from sys import argv, environ
>from string import *
С помощью первой формы с текущей областью видимости связывается только имя, ссылающееся на объект модуля, а при использовании второй — указанные имена (или все имена, если применена >*
) объектов модуля связываются с текущей областью видимости. При импорте можно изменить имя, с которым объект будет связан, с помощью >as
. В первом случае пространство имен модуля остается в отдельном имени и для доступа к конкретному имени из модуля нужно применять точку. Во втором случае имена используются так, как если бы они были определены в текущем модуле:
>os.system("dir")
>digits = re.compile("\d+")
>print argv[0], environ
Повторный импорт модуля происходит гораздо быстрее, так как модули кэшируются интерпретатором. Загруженный модуль можно загрузить еще раз (например, если модуль изменился на диске) с помощью функции >reload()
:
>import mymodule
>...
>reload(mymodule)
Однако в этом случае все объекты, являющиеся экземплярами классов из старого варианта модуля, не изменят своего поведения.
При работе с модулями есть и другие тонкости. Например, сам процесс импорта модуля можно переопределить. Подробнее об этом можно узнать в оригинальной документации.
Встроенные функции
В среде Python без дополнительных операций импорта доступно более сотни встроенных объектов, в основном, функций и исключений. Для удобства функции условно разделены по категориям:
1. Функции преобразования типов и классы: >coerce
, >str
, >repr
, >int
, >list
, >tuple
, >long
, >float
, >complex
, >dict
, >super
, >file
, >bool
, >object
2. Числовые и строковые функции: >abs
, >divmod
, >ord
, >pow
, >len
, >chr
, >unichr
, >hex
, >oct
, >cmp
, >round
, >unicode
3. Функции обработки данных: >apply
, >map
, >filter
, >reduce
, >zip
, >range
, >xrange
, >max
, >min
, >iter
, >enumerate
, >sum
4. Функции определения свойств: >hash
, >id
, >callable
, >issubclass
, >isinstance
, >type
5. Функции для доступа к внутренним структурам: >locals
, >globals
, >vars
, >intern
, >dir
6. Функции компиляции и исполнения: >eval
, >execfile
, >reload
, >__import__
, >compile
7. Функции ввода–вывода: >input
, >raw_input
, >open
8. Функции для работы с атрибутами: >getattr
, >setattr
, >delattr
, >hasattr
9. Функции-«украшатели» методов классов: >staticmethod
, >classmethod
, >property
10. Прочие функции: >buffer
, >slice
Уточнить назначение функции, ее аргументов и результата можно в интерактивной сессии интерпретатора Python:
>>>> help(len)
>Help on built–in function len:
>len(...)
>len(object) -> integer
>Return the number of items of a sequence or mapping.
Или так:
>>>> print len.__doc__
>len(object) -> integer
>Return the number of items of a sequence or mapping.
Функции преобразования типов и классы
Функции и классы из этой категории служат для преобразования типов данных. В старых версиях Python для преобразования к нужному типу использовалась одноименная функция. В новых версиях Python роль таких функций играют имена встроенных классов (однако семантика не изменилась). Для понимания сути достаточно небольшого примера: