Анимация
JavaScript


Главная  Библионтека 

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

15.9. repr - альтернативная реализация функции repr() 215

его восстановления с помощью функции eval() , иначе возвращает 0 . Всегда возвращает 0 для рекурсивных объектов и если объект содержит больше вложенных уровней, чем было разрешено при конструировании экземпляра.

isrecursive(object)

Возвращает l, если объект содержит рекурсивные ссылки, иначе возвращает 0.

15.9 repr - альтернативная реализация функции repr()

Этот модуль позволяет получать представление объектов аналогично встроенной функции repr() , но с ограничением размера получаемой строки. Эти возможности используются, например, отладчиком языка Python.

Модуль определяет следующие имена:

Repr()

Класс, предоставляющий возможности, полезные для реализации функций, аналогичных встроенной функции repr() . Во избежание генерации чрезмерно больших представлений включает ограничение размеров для различных типов объектов.

aRepr

Экземпляр класса Repr. Используется для реализации функции repr(), описанной ниже. Изменение атрибутов этого объекта отразится на ограничениях размеров, используемых функцией repr() и, соответственно, отладчиком.

repr( object )

Ссылается на метод repr() экземпляра aRepr. Возвращает строковое представление, аналогичное возвращаемому встроенной функцией repr() , но с ограничениями по размеру.

Экземпляры класса Repr предоставляют несколько атрибутов данных, которые могут быть использованы для установки ограничений размеров представлений объектов различных типов, и методы, возвращающие представления объектов этих типов:

maxlevel

Максимальный уровень вложенности объектов, включаемых в представление. По умолчанию равен 6 .

maxdict maxlist maxtuple

Максимальное число элементов, включаемых в представление для словарей, списков и кортежей соответственно. По умолчанию включается представление четырех элементов словарей и шести элементов списков и кортежей.



maxlong

Максимальное число символов в представлении длинных целых чисел. Цифры опускаются в середине. По умолчанию равно 4 0.

maxstring

Максимальное число символов в представлении строки. Заметим, что в качестве исходного функция использует стандартное представление. Если исходное представление содержит управляющие последовательности, в итоговом представлении они могут быть искажены. По умолчанию максимальное число символов равно 30.

maxother

Максимальное число символов в представлении других типов, по умолчанию равно 20.

repr( object)

Возвращает строковое представление, аналогичное возвращаемому встроенной функцией repr() , но с указанными ограничениями по размеру.

repr1(object, level)

Этот метод вызывается рекурсивно методом repr() . Использует тип объекта object для того, чтобы определить, какой метод вызвать для получения представления.

repr typename(object, level)

Методы, предназначенные для получения представления объектов определенного типа. Имя метода конструируется из имени типа, в котором пробелы заменены символами подчеркивания, путем добавления приставки repr . Методы, предназначенные для получения представления объектов определенного типа, вызываются методом repr1() и сами должны вызывать repr1() для вложенных объектов с аргументом level, меньше на единицу.

Определяя классы, производные от класса Repr, Вы можете добавить поддержку для других типов объектов или изменить поведение для поддерживаемых типов. Следующий пример показывает, каким образом можно реализовать поддержку файловых объектов:

import repr import sys

class MyRepr(repr.Repr):

def repr file(self, obj, level): if obj.name in [<stdin>,

<stdout>, <stderr>]: return obj.name else:

return obj

aRepr = MyRepr()

print aRepr.repr(sys.stdin) # выводит <stdin>



Глава 16

Работа со строками

Модули, описанные в этой главе, предоставляют широкий диапазон операций над строками.

string Наиболее распространенные операции над строками.

re Операции с регулярными выражениями.

StringIO Работа со строками как с файловыми объектами.

cStringIO Более быстрый вариант модуля StringIO.

codecs Регистрация кодеров и работа с ними.

16.1 string - наиболее распространенные операции над строками

Модуль string определяет несколько строковых констант, содержащих символы, которые относятся к определенному классу. Их значения зависят от текущих национальных установок (см. описание модуля locale).

digits

Десятичные цифры (0123456789). hexdigits

Символы, используемые для записи шестнадцатеричного представления (0l23456789abcdefABCDEF).

letters

Объединение строк lowercase и uppercase, описанных ниже. lowercase

Строка, содержащая все строчные буквы (буквы в нижнем регистре).

octdigits

Символы, используемые для записи восьмеричного представления (01234567). punctuation

Строка символов, которые считаются знаками препинания.



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