Анимация
JavaScript
|
Главная Библионтека 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 |