Главная страница

справочник по Python. мм isbn 9785932861578 9 785932 861578


Скачать 4.21 Mb.
Названиемм isbn 9785932861578 9 785932 861578
Анкорсправочник по Python
Дата08.05.2022
Размер4.21 Mb.
Формат файлаpdf
Имя файлаBizli_Python-Podrobnyy-spravochnik.440222.pdf
ТипСправочник
#518195
страница20 из 82
1   ...   16   17   18   19   20   21   22   23   ...   82
Глава 12.
Встроенные функции
Глава 13.
Службы Python времени выполнения
Глава 14.
Математика
Глава 15.
Структуры данных, алгоритмы и утилиты
Глава 16.
Работа с текстом и строками
Глава 17.
Доступ к базам данных
Глава 18.
Работа с файлами и каталогами
Глава 19.
Службы операционной системы
Глава 20.
Потоки и их согласование
Глава 21.
Работа с сетью и сокеты
Глава 22.
Разработка интернет-приложений
Глава 23.
Веб-программирование
Глава 24.
Обработка и кодирование данных в Интернете
Глава 25.
Различные библиотечные модули

Глава
12
.
Встроенные функции
В этой главе описываются встроенные функции и исключения языка Py-
Py- thon. Большая часть этого материала менее формально была рассмотрена в предыдущих главах. Эта глава просто объединяет все приводившие- ся ранее сведения в один раздел и дополняет их описанием более тонких особенностей некоторых функций. Кроме того, Python 2 включает в себя множество встроенных функций, которые были объявлены устаревшими и исключены из Python 3. Здесь эти функции не описываются; вместо этого основное внимание будет уделено более современным возможностям.
Встроенные функции и типы
Некоторые типы данных, функции и переменные всегда доступны интер- претатору и могут использоваться внутри любого модуля. Чтобы получить доступ к этим функциям, не требуется импортировать дополнительные модули, тем не менее все они содержатся внутри модуля __builtin__, в Py-
Py- thon 2, и внутри модуля builtins, в Python 3. Внутри других модулей, кото-
Python 3. Внутри других модулей, кото-
3. Внутри других модулей, кото- рые могут импортироваться программой, присутствует переменная __buil- buil- tins__
, которая также ссылается на этот модуль.
abs(x)
Возвращает абсолютное значение x.
all(s)
Возвращает True, если все значения в итерируемом объекте s оцениваются как True.
any(s)
Возвращает True, если хотя бы одно значение в итерируемом объекте s оце- нивается как True.
ascii(x)
Создает печатное представление объекта x, точно так же, как и функция repr()
, но в результате используются только символы ASCII. Символы, от-
ASCII. Символы, от-
. Символы, от-

260
Глава 12. Встроенные функции сутствующие в наборе ASCII, преобразуются в соответствующие экрани-
ASCII, преобразуются в соответствующие экрани-
, преобразуются в соответствующие экрани- рованные последовательности. Эта функция может использоваться для просмотра содержимого строк Юникода в терминалах или в командных оболочках, не поддерживающих Юникод. Только в Python 3.
basestring
Абстрактный тип данных, который является суперклассом для всех строко- вых типов в Python 2 (str и unicode). Используется только при тестировании на принадлежность к строковым типам. Например, isinstance(s,basestring) вернет True, если объект s является строкой того или иного типа. Только в Python 2.
bin(x)
Возвращает строку с двоичным представлением целого числа x.
bool([x])
Тип, используемый для представления логических значений True и False.
Если используется для преобразования x, возвращает True, если значение объект x оценивается как истина, при использовании обычной семантики определения истинности (то есть ненулевое число, непустой список и так далее). В противном случае возвращает False. Кроме того, если функция bool()
вызывается без аргументов, она по умолчанию возвращает False.
Класс bool является производным от класса int, поэтому логические зна- чения True и False можно использовать в математических операциях, как целые числа 1 и 0.
bytearray([x])
Тип, используемый для представления изменяемых массивов байтов. Ког- да создается новый массив, аргумент x может быть итерируемой последо- вательностью целых чисел в диапазоне от 0 до 255, строкой 8-битных сим- волов, литералом типа bytes или целым числом, определяющим размер массива байтов (в этом случае все элементы массива инициализируются значением 0). Объект типа bytearray выглядит, как массив целых чисел.
При обращении к элементу массива, например, a[i], возвращается целое число, представляющее значение байта с индексом i. В операциях присваи- вания, таких как a[i] = v, значение v также должно быть целым 8-битным значением. Кроме того, тип bytearray поддерживает все операции, которые могут применяться к строкам (такие, как извлечение среза, find(), split(), replace()
и так далее). В случае применения этих строковых операций все строковые литералы должны предваряться модификатором b, чтобы по- казать, что операции выполняются над строками байтов. Например, если требуется разбить массив байтов на поля, разделенные запятой, это сле- дует делать так: a.split(b’,’), а не a.split(‘,’). Результатом таких операций всегда будет новый объект типа bytearray, а не строка. Чтобы преобразовать объект bytearray в строку, следует использовать метод a.decode(encoding).
При использовании кодировки ‘latin-1’ в аргументе encoding объект типа bytearray будет преобразован в строку 8-битных символов без каких либо преобразований значений символов.

Встроенные функции и типы
261
bytearray(s ,encoding)
А
льтернативный способ создания экземпляра типа bytearray из строки символов s, где аргумент encoding определяет, какую кодировку символов использовать.
bytes([x])
Тип, используемый для представления неизменяемых массивов байтов.
В Python 2 является псевдонимом функции str(), которая создает стандарт- ную строку 8-битных символов. В Python 3 тип bytes является полностью самостоятельным типом, который является неизменяемой версией типа bytearray
, описанного выше. В этом случае аргумент x интерпретируется точно так же и может использоваться тем же способом. Важное замечание, касающееся переносимости программ: даже при том, что в Python 2 опреде- лен тип bytes, его поведение отличается от поведения типа bytes в Python 3.
Например, a – это экземпляр, созданный вызовом функции bytes(), тогда обращение a[i] в Python 2 вернет строку символов, а в Python 3 – целое чис- ло.
bytes(s, encoding)
Альтернативный способ создания экземпляра типа bytes из строки симво- лов s, где аргумент encoding определяет, какую кодировку символов исполь- зовать. Только в Python 3.
chr(x)
Преобразует целое число x в строку из одного символа. В Python 2 аргумент
x
должен иметь значение в диапазоне 0 <= x <= 255, а в Python 3 аргумент
x
должен быть представлен допустимым кодовым пунктом Юникода. Если значение x выходит за допустимый диапазон, возбуждается исключение
ValueError
classmethod(func)
Эта функция создает из функции func метод класса. Обычно используется только внутри определений классов, где она неявно вызывается декорато- ром @classmethod. В отличие от обычных методов, методы класса получают в первом аргументе ссылку на класс, а не на экземпляр. Например, если имеется объект f, который является экземпляром класса Foo, при вызове метода класса относительно объекта f в первом аргументе ему будет пере- дана ссылка на класс Foo, а не на экземпляр f.
cmp(x, y)
Сравнивает x и y и возвращает отрицательное число, если x < y, положи- тельное, если x > y, или 0, если x == y. Сравниваться могут любые два объ- екта, однако результат может не иметь никакого смысла, если оба объекта не реализуют осмысленного метода сравнения (например, при сравнении числа и объекта файла). В некоторых случаях такая попытка сравнивания может привести к исключению.
compile(string, filename, kind [, flags [, dont_inherit]])
Компилирует строку string в объект программного кода для последующего использования с функцией exec() или eval(). Аргумент string – это строка

262
Глава 12. Встроенные функции с допустимым программным кодом на языке Python. Если этот программ-
Python. Если этот программ-
. Если этот программ- ный код занимает несколько текстовых строк, они должны завершаться одиночным символом перевода строки (‘\n’), а не платформозависимым вариантом (например, ‘\r\n’ в Windows). Аргумент filename – это строка с именем файла, в котором была определена строка string. Аргумент kind может иметь значение ‘exec’ – в случае последовательности инструкций,
‘eval’
– для одиночного выражения или ‘single’ – в случае единственной инструкции. Аргумент flags определяет, какие дополнительные особен- ности (включенные в модуль __future__) должны быть активированы. Эти особенности перечисляются в виде флагов, объявленных в модуле __fu- fu- ture__
, с помощью побитовой операции ИЛИ. Например, если требуется активировать новую семантику операции деления, следует установить в аргументе flags значение __future__.division.compiler_flag. Если аргумент
flags
опущен, он принимает значение по умолчанию 0, а программный код компилируется с учетом всех особенностей, действующих в текущей версии Python. Если функции передается аргумент flags, то особенности, перечисленные в нем, добавляются к списку действующих особенностей.
Если аргумент dont_inherit установлен, активируются только особенности, перечисленные в аргументе flags, – особенности, действующие в текущей версии, игнорируются.
complex([real [, imag]])
Тип, используемый для представления комплексных чисел, состоящих из действительной и мнимой частей; аргументы real и imag могут иметь зна- чения любых числовых типов. Если аргумент imag опущен, мнимая часть числа принимается равной нулю. Если в аргументе real передается строка, она анализируется и преобразуется в комплексное число. В этом случае ар- гумент imag не должен передаваться. Если ни один аргумент не задан, воз- вращается число 0j.
delattr(object, attr)
Удаляет атрибут attr объекта object. Аргумент attr – это строка. Функция действует точно так же, как и инструкция del object.attr.
dict([m])
или dict(key1 = value1, key2 = value2, ...)
Тип, используемый для представления словарей. При вызове без аргумен- тов возвращает пустой словарь. Если в аргументе m передается объект ото- бражения (такой как словарь), возвращается новый словарь с теми же клю- чами и значениями, что и в объекте m. Например, если m – это словарь, то вызов dict(m) просто создаст его поверхностную копию. Если аргумент m не является отображением, он должен поддерживать итерации, в ходе кото- рых будет воспроизводиться последовательность пар (key, value). Эти пары будут использоваться для заполнения словаря. Функция dict() может также принимать именованные аргументы. Например, вызов dict(foo=3, bar=7)
создаст словарь { ‘foo’ : 3, ‘bar’ : 7 }.
dir([object])
Возвращает отсортированный список имен атрибутов. Если аргумент ob-
ject
является модулем, функция вернет список имен, объявленных в этом модуле. Если аргумент object является объектом типа или класса, функ-

Встроенные функции и типы
263
ция вернет список имен атрибутов. Имена обычно извлекаются из атрибута
__dict__
объекта, если он определен, но могут использоваться и другие ис- точники. При вызове без аргумента возвращается список имен в текущей локальной таблице символов. Следует отметить, что главное назначение этой функции заключается в том, чтобы служить источником информации
(например, для использования в интерактивном режиме). Она не может ис- пользоваться как официальный источник информации о программе, по- скольку возвращаемые ею сведения могут быть неполными. Кроме того, пользовательские классы могут объявлять специальный метод __dir__(), способный влиять на результат этой функции.
divmod(a, b)
Возвращает частное и остаток от деления длинных целых чисел в виде кор- тежа. Для целых чисел возвращается значение (a // b, a % b). Для чисел с плавающей точкой – (math.floor(a / b), a % b). Эта функция не должна вызываться для комплексных чисел.
enumerate(iter[, initial_value)
Для заданного итерируемого объекта iter возвращается новый итератор
(типа enumerate), который воспроизводит последовательность кортежей, со- держащих порядковый номер итерации и значение, полученное от объекта
iter
. Например, если допустить, что iter воспроизводит последовательность значений a, b, c, то итератор enumerate(iter) будет воспроизводить последо- вательность кортежей (0,a), (1,b), (2,c).
eval(expr [, globals [, locals]])
Вычисляет значение выражения expr. Аргумент expr – это строка или объ- это строка или объ- строка или объ- строка или объ- или объ- или объ- объ- объ- ект программного кода, созданный функцией compile(). Аргументы globals и locals – это объекты отображений, определяющие глобальное и локаль- ное пространства имен соответственно. Если эти аргументы опущены, вы- ражение вычисляется в пространстве имен вызывающего программного кода. В большинстве случаев в аргументах globals и locals передаются словари, но в сложных приложениях для этих целей могут использоваться собственные объекты отображений.
exec(code [, global [, locals]])
Выполняет инструкции языка Python. Аргумент code – это строка, файл или объект программного кода, созданный функцией compile(). Аргумен- ты globals и locals определяют глобальное и локальное пространства имен соответственно. Если эти аргументы опущены, выполнение происходит в пространстве имен вызывающего программного кода. Если не задан один из аргументов global или local, поведение этой функции несколько отлича- ется в разных версиях Python. В Python 2 exec в действительности реали- зована как специальная инструкция, тогда как в Python 3 она реализована как функция стандартной библиотеки. Такое различие в реализации по- рождает тонкий побочный эффект: в Python 2 программный код, выпол-
Python 2 программный код, выпол-
2 программный код, выпол- няемый инструкцией exec, может изменять локальные переменные в про- странстве имен вызывающего программного кода. В Python 3 также имеет-
Python 3 также имеет-
3 также имеет- ся возможность изменять переменные, но эти изменения не будут иметь эф- фекта за пределами самого вызова exec(). Это обусловлено тем, что в случае

264
Глава 12. Встроенные функции отсутствия аргумента locals для получения локального пространства имен в Python 3 используется функция locals(). Как следует из описания функ- ции locals(), возвращаемый ею словарь обеспечивает возможность чтения данных, но записанные в него данные не сохраняются.
filter(function, iterable)
В Python 2 эта функция создает список объектов, генерируемых итерируе-
Python 2 эта функция создает список объектов, генерируемых итерируе-
2 эта функция создает список объектов, генерируемых итерируе- мым объектом iterable, для которых функция function возвращает значе- ние True. В Python 3 возвращается итератор, который воспроизводит этот же результат. Если в аргументе function передается значение None, то каж- дый элемент в iterable проверяется на равенство значению False и те из них, для которых условие не выполняется, удаляются. Аргумент iterable может быть любым объектом, поддерживающим итерации. Как правило, фильтрацию можно выполнить гораздо быстрее с помощью выражений- генераторов или генераторов списков (глава 6).
float([x])
Тип, используемый для представления чисел с плавающей точкой. Если аргумент x является числом, оно преобразуется в число с плавающей точ- кой. Если аргумент x является строкой, она преобразуется в число с пла- вающей точкой. При вызове без аргумента возвращается число 0.0.
format(value [, format_spec])
Преобразует значение value в форматированную строку, в соответствии со спецификаторами формата в строке format_spec. Эта функция вызыва- ет метод value.__format__(), который может интерпретировать специфика- торы формата по своему усмотрению. Для простых типов данных в число спецификаторов формата обычно входят символы выравнивания ‘<’, ‘>’ и ‘^’; числа (определяющие ширину поля); и символы кодов ‘d’, ‘f’ и ‘s’ для целых чисел, для чисел с плавающей точкой и для строк соответственно.
Например, спецификатор формата ‘d’ предназначен для форматирования целых чисел, спецификатор ‘8d’ выровняет целое число по правому краю в поле шириной 8 символов, а спецификатор ‘<8d’ выровняет целое число по левому краю в поле шириной 8 символов. Подробнее о функции for- mat()
и о спецификаторах формата рассказывается в главе 3 «Типы данных и объекты» и в главе 4 «Операторы и выражения».
frozenset([items])
Тип, используемый для представления неизменяемых объектов множеств, заполненных значениями, взятыми из аргумента items, который должен быть итерируемым объектом. Значения также должны быть неизменяемы- ми. При вызове без аргумента возвращается пустое множество.
1   ...   16   17   18   19   20   21   22   23   ...   82


написать администратору сайта