Анимация
JavaScript
|
Главная Библионтека Глава 12 Встроенные функции Существует некоторый набор функций, встроенных в интерпретатор и, таким образом, всегда доступных для использования. Ниже приведены все встроенные функции в алфавитном порядке. import ( name [, globals [, locals [fromlist]]]) Эта функция вызывается инструкцией import. Вы можете заменить ее другой функцией, имеющей совместимый с import () интерфейс для того, чтобы изменить семантику инструкции import. Чтобы получить представление как и зачем это следует делать, смотрите описание стандартных модулей ihooks и rexec. Обратите также внимание на встроенный модуль imp, в котором определены некоторые операции, полезные для написания собственной функции import . Например, инструкция import spam приводит к выполнению import (spam, globals(), locals(), []), а инструкция from spam.ham import eggs - к выполнению import (spam.ham, globals(), locals(), [eggs]). Несмотря на то, что locals() и [eggs] передаются в качестве аргументов, сама функция import () не устанавливает локальную переменную eggs. На самом деле, стандартная функция import () вообще не использует аргумент locals, а аргумент globals использует только для определения контекста инструкции import. Если аргумент name задан в виде пакет. модуль и список fromlist пустой, функция import () возвращает объект-модуль, соответствующий имени пакет (часть имени name до первой точки), а не объект-модуль с именем name. Однако, если задан не пустой аргумент fromlist, функция import () возвращает объект-модуль, соответствующий имени name. Это сделано для совместимости байт-кода, сгенерированного для разных вариантов инструкции import: при использовании import spam.ham.eggs, объект модуль spam должен быть помещен в пространство имен, соответствующее области видимости, в котором выполняется инструкция import, в то время как при использовании from spam.ham import eggs, объект-модуль spam.ham должен быть использован для поиска объекта eggs. Для получения объекта Вы можете воспользоваться встроенной функцией getattr() , например: import string def my import(name): mod = import (name) components = string.split(name, .) for comp in components[1:]: mod = getattr(mod, comp) return mod abs( x) Возвращает абсолютное значение аргумента. Для комплексных чисел возвращает x*x.conjugate(). Поведение функции abs() применительно к экземплярам определяется специальным методом abs () (см. раздел 11.6.3). apply (object, args [, keywords]) Аргумент object должен быть объектом, поддерживающим вызов (см. раздел 11.4) и аргумент args должен быть последовательностью (если args не является кортежем, последовательность сначала преобразуется в кортеж). Необязательный аргумент keywords должен быть словарем, ключи которого являются строками. Возвращает результат вызова функции object с позиционными аргументами args и именованными аргументами keywords. Начиная с версии 1.6, тот же результат Вы можете получить, используя расширенную запись вызова: object (*args, **keywords) . buffer( object [, offset [, size]]) Создает и возвращает объект buffer, который ссылается на object (см. раздел 11.2.5). object должен быть объектом, поддерживающим соответствующий интерфейс ( string, unicode, array, buffer). Объект buffer представляет срез от offset (или от начала, если аргумент offset опущен) длиной size (до конца объекта object , если аргумент size опущен). callable( object ) Возвращает истину, если аргумент object поддерживает вызов, иначе возвращает ложь (см. также раздел 11.4). chr( i ) Возвращает строку, состоящую из одного символа, код которого равен i . Например, chr(97) возвращает строку a. Аргумент i должен быть целым числом от 0 до 255 включительно, если i выходит за пределы указанного диапазона, генерируется исключение ValueError. Обратная операция выполняется функцией ord() . См. также описание функции unichr() . cmp( x, y) Сравнивает объекты x и y и возвращает целое число: отрицательное, если x < y, ноль, если x == y, и положительное, если x > y. coerce( x, y) Пытается привести объекты x и y к общему типу используя такие же правила, как и для арифметических операций, и возвращает результат в виде кортежа из двух объектов. Если оба аргумента являются экземплярами класса, специальный метод coerce () вызывается только для первого. compile( string, filename, kind) Компилирует строку string и возвращает объект кода (см. раздел 11.9.1). Аргумент filename указывает имя файла, из которого создается объект кода. Используйте строку вида <источник>, если исходный текст берется не из файла (например, <string>). Аргумент kind указывает какого рода объект кода должен быть создан: используйте exec, если string состоит из последовательности инструкций, eval, если string содержит единственное выражение, или single, если string содержит одну инструкцию для интерактивного режима (в последнем случае результат выполнения инструкции-выражения отличный от None будет выведен в стандартный поток вывода). complex( real [, imag]) Преобразует аргумент числового типа real к комплексному типу, добавляет к нему imag*j (аргумент imag должен быть числового типа, по умолчанию равен нулю) или преобразует строку real в комплексное число (аргумент imag при этом игнорируется) и возвращает результат. delattr( object, name) Удаляет атрибут с именем name (строка) у объекта object, если объект позволяет это сделать. Например, вызов delattr(x, foobar) эквивалентен инструкции del x.foobar. dir( [object]) Без аргументов, возвращает список имен, определенных в локальной области видимости (с точностью до порядка следования, эквивалентно locals().keys()). С заданным аргументом, возвращает список атрибутов объекта object. Эта информация собирается из атрибутов объекта dict , methods и members , если они определены. Заметим, что функция dir() выдает список лишь тех атрибутов, которые определены непосредственно для объекта object. Так, например, применительно к классу, не включаются атрибуты, определенные для базовых классов, а применительно к экземплярам, не включаются атрибуты класса. Имена в возвращаемом списке располагаются в алфавитном порядке. divmod( a, b) Возвращает кортеж из двух чисел1: целой части и остатка при делении a на b. К операндам применяются обычные правила приведения к общему типу, как и при выполнении других арифметических операций. Если оба операнда целые (int или long int), результат будет равен ( a / b, a % b) . Для чисел с плавающей точкой результат будет равен (q, a % b), где q (типа float) обычно равно math.floor(a / b), но может быть на единицу меньше. В любом случае, значение выражения q * b + a % b очень близко к a, а a % b (если не равно нулю) имеет тот же знак, что и b. Кроме того, всегда выполняется условие 0 <= abs( a % b) < abs( b) . eval( expression [, globals [, locals]]) Строка expression разбирается и вычисляется ее значение как выражения на 1 Могут быть произвольного типа, если a или b является экземпляром класса с методом divmod и rdivmod соответственно. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 [ 51 ] 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 |