Анимация
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

setrecursionlimit(limit)

Устанавливает максимальную глубину стека интерпретатора Python. Это ограничение предотвращает переполнение стека при бесконечных рекурсиях. Максимальная возможная глубина стека зависит от платформы. Вам может понадобиться установить более высокое значение, если Ваша программа использует глубокие рекурсивные вызовы. Однако делать это следует с осторожностью, так как слишком большое значение может привести к аварийному завершению работы интерпретатора. Эта функция доступна, начиная с версии 2.0.

settrace(tracefunc)

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

stdin

stdout

stderr

Файловые объекты, соответствующие стандартным потокам ввода, вывода и ошибок интерпретатора. stdin используется интерпретатором для операций ввода, таким как input() и raw input(). stdout используется интерпретатором для операций вывода с помощью инструкции print, инструкций-выражений и для вывода приглашений функциями input() и raw input(). Для вывода собственных приглашений интерпретатора в интерактивном режиме и вывода сообщений об ошибках (не перехваченных исключениях) используется stderr. Для корректной работы встроенных возможностей языка Python stdout и stderr должны быть объектами (произвольного типа), имеющими метод write() . Для корректной работы функций input() и raw input() объект, на который ссылается stderr должен иметь метод readline() . Заметим, что изменение этих переменных не оказывает влияния на стандартные потоки ввода/вывода порождаемых (например, функциями os.popen() или os.system() ) процессов.

stdin stdout stderr

Эти переменные хранят исходные значения для stdin, stderr и stdout при запуске программы и могут быть использованы для их восстановления.

tracebacklimit

Если этой переменной присвоено целое значение, она определяет максимальное число уровней информации, представляемой объектом traceback, которое будет выводиться при возникновении (необрабатываемой) исключительной ситуации. По умолчанию выводится не более 1000 уровней. Значение меньше или равное нулю запрещает вывод такой информации - выводится только тип исключения и его строковое представление.

version

Строка, содержащая информацию о версии, номере и времени сборки интерпретатора Python и компиляторе, который был использован, в виде version (#build number, build date, build time) [compiler]. Первые три



15.2 gc - управление "сборщиком мусора"

Этот модуль предоставляет интерфейс к необязательному "сборщику мусора" (garbage collector, GC): возможность отключить его, настроить частоту работы, установить отладочные параметры, а также предоставляет доступ к "потерянным"1 объектам, найденным "сборщиком мусора", которые, однако, не могут быть удалены. Так как "сборщик мусора" дополняет механизм подсчета ссылок, уже используемый интерпретатором Python, Вы можете отключить его, если уверены, что программа не создает циклических ссылок. Автоматический сбор может быть отключен вызовом gc.disable(). Для поиска утечек памяти при отладке, следует вызвать gc.set debug(gc.DEBUG LEAK).

Модуль gc предоставляет следующие функции:

enable()

Включает автоматический "сбор мусора".

disable()

Выключает автоматический "сбор мусора".

isenabled()

Возвращает 1 , если автоматический "сбор мусора" включен, иначе возвращает 0.

1 "Потерянными" (или недоступными) мы будем называть объекты, на которые не ссылается ни одна переменная. Единственный способ удалить их или получить к ним доступ - воспользоваться "сборщиком мусора".

символа используются для идентификации версии в именах каталогов, в которые производится установка. version используется в первой выводимой при запуске интерпретатора в интерактивном режиме строке: Python +sys.version+ on +platform.

version info

Кортеж из пяти объектов, описывающих номер версии: (major, minor, micro, releaselevel, serial). Все элементы, кроме releaselevel являются целыми числами. releaselevel может иметь одно из четырех значений: alpha, beta, candidate или final. Значение version info, соответствующее финальному выпуску Python 2.0, будет (2, 0, 0, final, 0). Переменная определена, начиная с версии 1.6.

winver (Windows)

Строка с версией интерпретатора, используемая для имени ключа системного реестра на платформах Windows (обычно первые три символа переменной version). Переменная предоставляется в информационных целях, ее изменение не оказывает влияние на имя используемого интерпретатором ключа.



15.2. gc - управление "сборщиком мусора" 199

collect()

Запускает полный "сбор мусора" и возвращает общее количество найденных недоступных объектов. Список объектов, которые не могут быть удалены "сборщиком мусора", становится доступными через переменную garbage.

set debug(flags)

Устанавливает параметры отладки. Вся отладочная информация будет выводиться на стандартный поток ошибок. Отладочные флаги (см. ниже) можно комбинировать с помощью оператора битового ИЛИ. Полностью отключить отладку можно с помощью инструкции set debug(0) .

get debug()

Возвращает параметры отладки, которые в настоящий момент установлены.

set threshold (thresholdO [, thresholdl [, threshold2]])

Устанавливает пороги запуска (частоту) автоматического "сбора мусора". Значение thresholdO равное нулю отключает автоматический "сбор мусора".

Различаются три поколения объектов в зависимости от того, сколько запусков сборщика они пережили. Новые объекты - самые молодые, относятся к поколению 0 . После каждого запуска сборщика объект "взрослеет", перемещается в поколение 1, затем в поколение 2. Так как поколение 2 самое старшее, объекты остаются в нем после последующих запусков сборщика. Для того, чтобы решить, когда производить запуск, сборщик подсчитывает количество созданных и удаленных объектов после последнего запуска. Когда разница между ними достигает thresholdO , запускается "сборщик мусора". Изначально анализируется только самое молодое поколение. Если поколение 0 анализировалось более thresholdl раз после последнего анализа поколения 1, также анализируется и поколение 1. Аналогично threshold2 контролирует количество запусков сборщика для поколения 1, перед тем как обрабатывать поколение 2.

get threshold()

Возвращает кортеж текущих порогов запуска "сборщика мусора" в виде

( thresholdO , thresholdl , threshold2) .

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

garbage

Список недоступных объектов, найденных "сборщиком мусора", которые не могут

быть удалены. Экземпляры классов, имеющие специальный метод del () и

входящие в цикл ссылающихся друг на друга объектов, делают весь цикл неуда-ляемым. Если установлена опция отладки DEBUG SAVEALL, в этой переменной сохраняются все найденные недоступные объекты ("сборщик мусора" их при этом не удаляет).

Для установки параметров отладки модуль предоставляет следующие константы-флаги:



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