Анимация
JavaScript
|
Главная Библионтека 14.2. user - конфигурация пользователя 191 После выполнения перечисленных манипуляций с путями, производится попытка импортировать модуль sitecustomize, в который может выполнять дополнительные настройки. Если при импортировании генерируется исключение ImportError, оно молча игнорируется. 14.2 user - конфигурация пользователя В целях безопасности интерпретатор не выполняет автоматически конфигурационный файл пользователя. Только в интерактивном режиме интерпретатор выполняет файл, указанный в переменной окружения PYTHONSTARTUP. Однако некоторые программы могут позволить загрузить стандартный конфигурационный файл пользователя. Программа, желающая использовать такой механизм, должна выполнить инструкцию import user . Модуль user ищет файл с именем .pythonrc.py в домашнем каталоге пользователя и выполняет его с помощью встроенной функции execfile() в своем собственном (модуля user) глобальном пространстве имен. Ошибки, возникающие при выполнении .pythonrc.py модулем user не обрабатываются. Если домашний каталог не может быть определен, выполняется файл .pythonrc.py в текущем каталоге. Будьте сдержаны в том, что Вы помещаете в свой файл .pythonrc.py . Так как Вы не знаете, какие программы будут его использовать, изменение поведения стандартных модулей и функций вряд ли будет хорошей идеей. Рекомендация для программистов, желающих использовать описанный здесь механизм: простейший способ устанавливать параметры - определить переменные в файле .pythonrc.py. Например, модуль spam может определить, насколько подробными пользователь хочет видеть его сообщения, с помощью следующих инструкций: import user try: # значение, установленное пользователем verbose = user.spam verbose except AttributeError: # значение по умолчанию verbose = 0 Программам, имеющим большое количество пользовательских параметров, следует использовать отдельный конфигурационный файл. Программы, имеющие отношение к безопасности, а также модули общего назначения, не должны импортировать модуль user. Глава 15 Служебные модули Модули, описанные в этой главе, являются служебными по отношению к интерпретатору языка Python и его взаимодействию с окружением. sys Доступ к характерным для системы параметрам и функциям. atexit Регистрирует функции и выполняет их при окончании работы программы types Имена для всех встроенных типов. operator Операторы языка Python в виде функций. traceback Модуль для работы с объектами traceback. imp Доступ к операциям, производимым инструкцией import. pprint Представление и вывод данных в более привлекательном виде. repr Альтернативная реализация функции repr() с ограничением размера. 15.1 sys - характерные для системы параметры и функции Этот модуль предоставляет доступ к переменным, используемым или поддерживаемым интерпретатором, и функциям, которые интенсивно взаимодействуют с интерпретатором. Модуль sys всегда доступен. argv Список аргументов, переданных в командной строке программе на языке Python. argv[0] является именем программы (является имя полным или нет, зависит от используемой операционной системы). Если интерпретатор запущен с опцией -с, argv[0] является строкой -c. При чтении команд со стандартного потока ввода (в том числе в интерактивном режиме) argv[0] является строкой - или в зависимости от того, использовалась опция - или нет. byteorder Строка, указывающая характерный для платформы порядок следования байтов: big (big-endian) или little (little-endian). Переменная доступна, начиная с версии 2.0. builtin module names Кортеж строк - имен всех модулей, встроенных в интерпретатор. Эта информация не может быть получена никаким другим путем (modules.keys() дает список имен импортированных модулей). copyright Строка, содержащая авторские права на интерпретатор языка Python. dllhandle (Windows) Целое число, дескриптор DLL интерпретатора Python. exc info() Возвращает кортеж из трех значений, описывающих исключение, которое в данный момент обрабатывается (в текущем потоке). Под обработкой исключения здесь подразумевается выполнение ветви except (в том числе и вызванных из нее функций) инструкции try (см. раздел 10.4.4). Если в настоящий момент обработка исключения не выполняется, возвращаемый кортеж содержит три объекта None. В противном случае, возвращается (type, value, traceback) , где type - тип исключения (класс или строка), value - значение исключения (экземпляр класса) или ассоциированное значение (строка) и traceback - объект traceback (см. раздел 11.9.3), представляющий пройденный путь от места возникновения исключительной ситуации. Важное замечание: присваивание traceback локальной переменной в функции, обрабатывающей исключение, приведет к образованию циклических ссылок между объектами. Таким образом, удаление объекта будет возможным, только если интерпретатор собран со сборщиком мусора (см. описание модуля gc). Так как в большинстве случаев объект traceback не нужен, наилучшим решением будет использование функции в виде type, value = sys.exc info()[:2] для получения только типа и значения исключения. Если Вам необходим объект traceback, удостоверьтесь в том, что Вы удаляете его после использования (лучше всего это делать в ветви finally инструкции try) или используйте exc info() в отдельной функции, вызванной из ветви except. exc type exc value exc traceback Присутствуют только для совместимости со старыми версиями - используйте функцию exc info(). Так как они являются глобальными переменными, содержат значения для исключения, обработка которого была начата последней. Таким образом, их использование не безопасно в многопоточных программах. Если в данный момент исключение не обрабатывается, значение exc type равно None и переменные exc value и exc traceback не определены. exec prefix Строка, содержащая начало пути к зависимым от платформы файлам интерпретатора Python (зависит от параметров сборки и/или установки). Например, конфигурационные файлы на платформах UNIX располагаются в каталоге sys.exec prefix + /lib/python + sys.version[:3] + /config . 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 |