Журнал LinuxFormat - перейти на главную

LXF77:Python

Материал из Linuxformat
(Различия между версиями)
Перейти к: навигация, поиск
(Новая: ''Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством '''Сер...)

Версия 13:34, 26 апреля 2008

Часть 3. Итак, познакомившись с типами данных, доступных в языке Python, мы, под чутким руководством Сергея Супрунова морально готовы приступить к более серьёзным вещам. На сегодня программа-минимум – разобраться с модулями и научиться писать свои функции.

Модули

Начнем со стандартных модулей. Стандартными их называют потому, что они, как правило, уже включены в вашу поставку Python (будь то Linux, FreeBSD или даже Windows) и не требуют дополнительной инсталляции. Как вы видели в конце прошлого урока, модуль подключается оператором import. В качестве параметров вы можете указать любое количество модулей. Также допускается любое число операторов import в любой точке вашей программы.

Для чего же нужны модули? Чуть позже, когда мы напишем свою функцию, вы увидите, что с помощью модуля очень легко реализуется концепция повторного использования кода. Пока же модули интересны нам как способ расширения возможностей вашей программы. С их помощью вы подключаете уже написанные кем-то наборы функций и методов, которые сможете использовать почти так же, как если бы они были встроенными (такими, как рассмотренная нами ранее float()).

Начнем с модуля sys. В нем определен ряд переменных, содержащих информацию об операционной системе, дескрипторы стандартных потоков ввода, вывода и ошибок (stdin, stdout и stderr соответствен но), и так далее. рассмотрим небольшой пример:

>>> import sys
>>> print sys.arch, sys.platform
 i386 linux2
>>> print sys.version
 2.4.1 (#1, Sep 13 2005, 00:39:20)
 [GCC 4.0.2 20050901 (prerelease) (SUSE Linux)]
>>> print sys.maxint
 2147483647

Как видите, чтобы получить доступ к определённым в модуле переменным (впрочем, это относится и к остальным объектам), перед их именем следует указать имя модуля. Это оберегает от конфликта имён, когда объявленная вами переменная или функция имеет такое же имя, как и определенная в модуле. то есть каждый модуль имеет свое пространство имен, доступ к которому осуществляется по имени модуля. Если имя модуля слишком неудобно для работы, вы можете указать для него псевдоним после ключевого слова as (например, import SimpleXMLRPCServer as rpc), и в дальнейшем использовать это упрощённое имя. Впрочем, иногда удобнее (а порой и необходимо), что-бы имена, определенные в модуле, были импортированы непосредственно в пространство имён основной программы. Для этого предусмотрена несколько иная конструкция:

>>> from sys import *
>>> print platform
 linux2

Теперь можно обращаться к объектам модуля непосредственно, но будьте осторожны – вы потеряете все определённые вами переменные и функции, имена которых совпадут с именами определенных в модуле.

Символ «звездочка» в операторе from - import означает, что должно быть импортировано всё, что определено в модуле. Вы также можете перечислить только то, что желаете сделать доступным в вашей про грамме (например, from sys import version).

Ещё одна важнейшая переменная модуля sys – список sys.argv, в который в момент запуска Python-программы помещаются аргументы, переданные в командной строке. Пример использования этого списка вы увидите далее в данной статье.

Модуль os

Персональные инструменты
купить
подписаться
Яндекс.Метрика