Spec-Zone.ru › Python 3.7

sys — Параметры и функции, специфичные для системы

Этот модуль предоставляет доступ к некоторым переменным, используемым или поддерживаемым интерпретатором, и к функциям, которые тесно взаимодействуют с интерпретатором. Он всегда доступен.

sys.abiflags

В системах POSIX, где Python был построен со стандартным скриптом configure, это содержит флаги ABI, как указано в PEP 3149.

Добавлен в версии 3.2.

sys.argv

Список аргументов командной строки, переданных скрипту Python. argv[0] — это имя скрипта (зависит от операционной системы, является ли это полным путем или нет). Если интерпретатор был запущен с опцией командной строки -c, argv[0] устанавливается в строку '-c'. Если имя скрипта не было передано интерпретатору Python, argv[0] — это пустая строка.

Для цикла по стандартному вводу или списку файлов, заданных в командной строке, см. модуль fileinput.

Примечание

В Unix аргументы командной строки передаются в виде байтов от ОС. Python декодирует их с помощью кодировки файловой системы и обработчика ошибок «surrogateescape». Если вам нужны исходные байты, вы можете получить их, используя [os.fsencode(arg) for arg in sys.argv].

sys.base_exec_prefix

Устанавливается во время запуска Python, до выполнения site.py, с тем же значением, что и exec_prefix. Если выполнение не происходит в виртуальной среде, значения остаются неизменными; если site.py обнаруживает, что используется виртуальная среда, значения prefix и exec_prefix будут изменены для указания на виртуальную среду, тогда как base_prefix и base_exec_prefix останутся указателями на базовую установку Python (той, из которой была создана виртуальная среда).

Добавлен в версии 3.3.

sys.base_prefix

Устанавливается во время запуска Python, до выполнения site.py, с тем же значением, что и prefix. Если выполнение не происходит в виртуальной среде, значения останутся неизменными; если site.py обнаруживает, что используется виртуальная среда, значения prefix и exec_prefix будут изменены для указания на виртуальную среду, тогда как base_prefix и base_exec_prefix останутся указателями на базовую установку Python (той, из которой была создана виртуальная среда).

Добавлен в версии 3.3.

sys.byteorder

Индикатор родного порядка байтов. Будет иметь значение 'big' на платформах с big-endian (старший байт первым) и 'little' на платформах с little-endian (младший байт первым).

sys.builtin_module_names

Кортеж строк, содержащий имена всех модулей, скомпилированных в эту интерпретацию Python. (Эта информация недоступна другими способами — modules.keys() перечисляет только импортированные модули.)

sys.call_tracing(func, args)

Вызов func(*args), в то время как включено отслеживание. Состояние отслеживания сохраняется и восстанавливается после этого. Это предназначено для вызова дебаггером из контрольной точки, чтобы рекурсивно отладить какой-либо другой код.

sys.copyright

Строка, содержащая копирайт, относящийся к интерпретатору Python.

sys._clear_type_cache()

Очистить внутреннюю кэш-память типов. Кэш типов используется для ускорения поиска атрибутов и методов. Используйте функцию *только* для удаления ненужных ссылок во время отладки утечек памяти.

Эта функция должна использоваться только для внутренних и специализированных целей.

sys._current_frames()

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

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

Эта функция должна использоваться только для внутренних и специализированных целей.

sys.breakpointhook()

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

Подпись этой функции зависит от того, что она вызывает. Например, стандартная привязка (например, pdb.set_trace()) не ожидает аргументов, но вы можете привязать её к функции, которая ожидает дополнительные аргументы (позиционные и/или ключевые).

Встроенная функция breakpoint() передает свои *args и **kws непосредственно.

Что бы ни вернула breakpointhooks(), это будет возвращено из breakpoint().

Стандартная реализация сначала проверяет переменную среды PYTHONBREAKPOINT. Если она установлена в "0", эта функция возвращается немедленно; т.е. она является бесполезной. Если переменная среды не задана или установлена в пустую строку, вызывается pdb.set_trace().

В противном случае эта переменная должна указывать на функцию для запуска с использованием обозначений импорта Python, например package.subpackage.module.function. В этом случае package.subpackage.module будет импортирован, и полученный модуль должен иметь вызываемую функцию с именем function(). Она будет запущена, передавая *args и **kws, и что бы ни вернула function(), это вернётся от sys.breakpointhook() функции breakpoint().

Обратите внимание, что если при импорте вызываемой функции, указанной в PYTHONBREAKPOINT, возникнут ошибки, будет отображено сообщение RuntimeWarning, и точка останова будет проигнорирована.

Также обратите внимание, что если sys.breakpointhook() переопределяется программно, переменная среды PYTHONBREAKPOINT не используется.

Добавлен в версии 3.7.

sys._debugmallocstats()

Выводит в stderr низкоуровневую информацию о состоянии памяти CPython.

Если Python сконфигурирован с параметром –with-pydebug, также выполняет некоторые дорогостоящие проверки внутренней целостности.

Добавлен в версии 3.3.

Деталь реализации CPython: Эта функция специфична для CPython. Точный формат вывода не определен здесь и может меняться.

sys.dllhandle

Целое число, определяющее дескриптор DLL Python.

Доступность: Windows.

sys.displayhook(value)

Если value не None, эта функция печатает repr(value) в sys.stdout, и сохраняет value в builtins._. Если repr(value) не может быть закодировано в sys.stdout.encoding с обработчиком ошибок sys.stdout.errors (что, вероятно, 'strict' ), закодируйте его в sys.stdout.encoding с обработчиком ошибок 'backslashreplace'.

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

Псевдокод:

def displayhook(value):
    if value is None:
        return
    # Set '_' to None to avoid recursion
    builtins._ = None
    text = repr(value)
    try:
        sys.stdout.write(text)
    except UnicodeEncodeError:
        bytes = text.encode(sys.stdout.encoding, 'backslashreplace')
        if hasattr(sys.stdout, 'buffer'):
            sys.stdout.buffer.write(bytes)
        else:
            text = bytes.decode(sys.stdout.encoding, 'strict')
            sys.stdout.write(text)
    sys.stdout.write("\n")
    builtins._ = value

Изменено в версии 3.2: Используйте обработчик ошибок 'backslashreplace' для UnicodeEncodeError.

END_OF_DOCUMENT_MARKER ```
sys.dont_write_bytecode

Если это значение истинно, Python не будет пытаться записать .pyc файлы при импорте исходных модулей. Это значение изначально установлено в True или False в зависимости от параметра командной строки -B и переменной среды PYTHONDONTWRITEBYTECODE, но вы можете установить его самостоятельно, чтобы контролировать генерацию файлов байткода.

sys.excepthook(type, value, traceback)

Эта функция выводит отладочную информацию об исключении и самой ошибке в sys.stderr.

Когда возникает исключение и оно не перехвачено, интерпретатор вызывает sys.excepthook с тремя аргументами: классом исключения, экземпляром исключения и объектом отладочной информации. В интерактивной сессии это происходит непосредственно перед возвращением управления к приглашению; в программе Python — непосредственно перед завершением программы. Обработку таких исключений верхнего уровня можно настроить, назначив другую функцию с тремя аргументами в sys.excepthook.

sys.__breakpointhook__
sys.__displayhook__
sys.__excepthook__

Эти объекты содержат исходные значения breakpointhook, displayhook, и excepthook в начале программы. Они сохраняются для того, чтобы breakpointhook, displayhook и excepthook можно было восстановить в случае, если они были заменены нерабочими или альтернативными объектами.

Новое в версии 3.7: __breakpointhook__

sys.exc_info()

Эта функция возвращает кортеж из трёх значений, содержащих информацию об исключении, которое в данный момент обрабатывается. Возвращаемая информация относится как к текущей нити, так и к текущей рамке стека. Если текущая рамка стека не обрабатывает исключение, информация берется из вызывающей рамки стека, или её вызывающей, и так далее, пока не будет найдена рамка стека, обрабатывающая исключение. Здесь «обработка исключения» определяется как «выполнение блока except».

Если нигде в стеке исключение не обрабатывается, возвращается кортеж, содержащий три None значения. В противном случае, возвращаемые значения — (type, value, traceback). Их значения: type содержит тип обрабатываемого исключения (подкласс BaseException); value содержит экземпляр исключения (экземпляр типа исключения); traceback содержит объект отладочной информации (см. Справочник), который инкапсулирует стек вызовов в момент первоначального возникновения исключения.

sys.exec_prefix

Строка, содержащая префикс каталога, специфичный для сайта, где установлены платформозависимые файлы Python; по умолчанию, это также '/usr/local'. Это можно задать во время сборки, используя аргумент --exec-prefix скрипта configure. В частности, все конфигурационные файлы (например, файл заголовка pyconfig.h ) устанавливаются в каталоге exec_prefix/lib/pythonX.Y/config, а модули общих библиотек устанавливаются в exec_prefix/lib/pythonX.Y/lib-dynload, где X.Y — номер версии Python, например 3.2.

Примечание

Если активна виртуальная среда виртуальная среда, это значение будет изменено в site.py для указания на виртуальную среду. Значение для установки Python по-прежнему будет доступно через base_exec_prefix.

sys.executable

Строка, содержащая абсолютный путь к исполняемому бинарному файлу интерпретатора Python, на системах, где это имеет смысл. Если Python не может получить реальный путь к своему исполняемому файлу, sys.executable будет пустой строкой или None.

sys.exit([arg])

Завершить работу Python. Это реализуется путём возбуждения исключения SystemExit, поэтому действия по очистке, указанные в блоках finally операторов try будут выполнены, и есть возможность перехватить попытку выхода на более высоком уровне.

Необязательный аргумент arg может быть целым числом, определяющим код завершения (по умолчанию 0), или другим типом объекта. Если это целое число, 0 считается «успешным завершением», а любое ненулевое значение считается «ненормальным завершением» оболочками и подобными программами. Большинство систем требуют, чтобы он находился в диапазоне от 0 до 127, а в противном случае поведение является неопределённым. Некоторые системы имеют соглашение для назначения конкретных значений кодам завершения, но они обычно слабо разработаны; программы Unix обычно используют 2 для ошибок в синтаксисе командной строки и 1 для всех других видов ошибок. Если передается объект другого типа, None эквивалентно передаче нуля, а любой другой объект выводится в stderr и приводит к коду завершения 1. В частности, sys.exit("some error message") — это быстрый способ завершить программу при возникновении ошибки.

Так как exit() в конечном итоге «только» возбуждает исключение, она завершит процесс только при вызове из главной нити, и исключение не перехватывается.

Изменено в версии 3.6: Если при очистке после того, как интерпретатор Python перехватил SystemExit (например, при ошибке сброса буферизованных данных в стандартных потоках), произошла ошибка, код завершения меняется на 120.

sys.flags

Кортеж с именованными полями flags отображает состояние флагов командной строки. Атрибуты являются только для чтения.

атрибут

флаг

debug

-d

inspect

-i

interactive

-i

isolated

-I

optimize

-O или -OO

dont_write_bytecode

-B

no_user_site

-s

no_site

-S

ignore_environment

-E

verbose

-v

bytes_warning

-b

quiet

-q

hash_randomization

-R

dev_mode

-X dev

utf8_mode

-X utf8

Изменено в версии 3.2: Добавлен атрибут quiet для нового флага -q.

Добавлен в версии 3.2.3: Атрибут hash_randomization.

Изменено в версии 3.3: Удален устаревший атрибут division_warning.

Изменено в версии 3.4: Добавлен атрибут isolated для флага -I isolated.

Изменено в версии 3.7: Добавлен атрибут dev_mode для нового флага -X dev и атрибут utf8_mode для нового флага -X utf8.

sys.float_info

Кортеж с именованными полями, содержащий информацию о типе float. Он содержит информацию низкого уровня о точности и внутреннем представлении. Значения соответствуют различным константам с плавающей точкой, определённым в стандартном заголовочном файле float.h языка программирования «C»; см. раздел 5.2.4.2.2 стандарта ISO/IEC C 1999 [C99], «Характеристики типов с плавающей точкой», для подробностей.

атрибут

макрос float.h

объяснение

epsilon

DBL_EPSILON

разница между 1.0 и наименьшим значением, большим чем 1.0, которое может быть представлено как float

dig

DBL_DIG

максимальное количество десятичных цифр, которые могут быть точно представлены в float; см. ниже

mant_dig

DBL_MANT_DIG

точность float: количество цифр в основании radix в мантиссе float

max

DBL_MAX

максимальное представимое положительное конечное float

max_exp

DBL_MAX_EXP

максимальное целое число e такое, что radix**(e-1) является представимым конечным float

max_10_exp

DBL_MAX_10_EXP

максимальное целое число e такое, что 10**e находится в диапазоне представимых конечных float

min

DBL_MIN

минимальное представимое положительное нормализованное float

min_exp

DBL_MIN_EXP

минимальное целое число e такое, что radix**(e-1) является нормализованным float

min_10_exp

DBL_MIN_10_EXP

минимальное целое число e такое, что 10**e является нормализованным float

radix

FLT_RADIX

основание представления экспоненты

rounds

FLT_ROUNDS

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

Атрибуту sys.float_info.dig требуется дополнительное объяснение. Если s — любая строка, представляющая десятичное число с не более чем sys.float_info.dig значащими цифрами, то преобразование s в float и обратно восстановит строку, представляющую то же десятичное значение:

>>> import sys
>>> sys.float_info.dig
15
>>> s = '3.14159265358979'    # decimal string with 15 significant digits
>>> format(float(s), '.15g')  # convert to float and back -> same value
'3.14159265358979'

Но для строк с более чем sys.float_info.dig значащими цифрами это не всегда верно:

>>> s = '9876543211234567'    # 16 significant digits is too many!
>>> format(float(s), '.16g')  # conversion changes value
'9876543211234568'
sys.float_repr_style

Строка, указывающая, как функция repr() ведёт себя для чисел с плавающей точкой. Если строка имеет значение 'short', то для конечного float x, функция repr(x) стремится произвести короткую строку с тем свойством, что float(repr(x)) == x. Это обычное поведение в Python 3.1 и более поздних версиях. В противном случае float_repr_style имеет значение 'legacy' и repr(x) ведёт себя так же, как и в версиях Python до 3.1.

Добавлено в версии 3.1.

sys.getallocatedblocks()

Возвращает количество блоков памяти, выделенных интерпретатором в данный момент, независимо от их размера. Эта функция полезна в основном для отслеживания и отладки утечек памяти. Из-за внутренних кешей интерпретатора результат может меняться от вызова к вызову; вам может потребоваться вызвать _clear_type_cache() и gc.collect(), чтобы получить более предсказуемые результаты.

Если сборка или реализация Python не может разумно вычислить эту информацию, getallocatedblocks() разрешается вернуть 0 вместо этого.

Добавлено в версии 3.4.

sys.getandroidapilevel()

Возвращает версию API Android в момент сборки как целое число.

Доступность: Android.

Добавлено в версии 3.7.

sys.getcheckinterval()

Возвращает «интервал проверки» интерпретатора; см. setcheckinterval().

Устарело начиная с версии 3.2: Используйте getswitchinterval() вместо этого.

sys.getdefaultencoding()

Возвращает имя текущего кодирования по умолчанию для строк, используемое реализацией Unicode.

sys.getdlopenflags()

Возвращает текущее значение флагов, используемых для вызовов dlopen(). Символьные имена значений флагов можно найти в модуле os (константы RTLD_xxx, например, os.RTLD_LAZY).

Доступность: Unix.

sys.getfilesystemencoding()

Возвращает имя кодировки, используемой для преобразования между именами файлов Unicode и именами файлов в байтах. Для лучшей совместимости str следует использовать для имен файлов во всех случаях, хотя представление имен файлов в байтах также поддерживается. Функции, принимающие или возвращающие имена файлов, должны поддерживать либо str, либо bytes и внутри преобразовывать их в предпочтительное представление системы.

Эта кодировка всегда совместима с ASCII.

os.fsencode() и os.fsdecode() следует использовать для обеспечения правильного использования кодировки и режима ошибок.

  • В режиме UTF-8 кодировка равна utf-8 на любой платформе.
  • В Mac OS X кодировка равна 'utf-8'.
  • В Unix кодировка равна кодировке локали.
  • В Windows кодировка может быть 'utf-8' или 'mbcs', в зависимости от конфигурации пользователя.

Изменено в версии 3.2: getfilesystemencoding() результат больше не может быть None.

Изменено в версии 3.6: Windows больше не гарантирует возврат 'mbcs'. См. PEP 529 и _enablelegacywindowsfsencoding() для получения дополнительной информации.

Изменено в версии 3.7: Возвращает ‘utf-8’ в режиме UTF-8.

sys.getfilesystemencodeerrors()

Возвращает имя режима ошибок, используемого для преобразования между именами файлов Unicode и именами файлов в байтах. Имя кодировки возвращается из getfilesystemencoding().

os.fsencode() и os.fsdecode() следует использовать для обеспечения правильного использования кодировки и режима ошибок.

Добавлен в версии 3.6.

sys.getrefcount(object)

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

sys.getrecursionlimit()

Возвращает текущее значение ограничения рекурсии, максимальную глубину стека интерпретатора Python. Это ограничение предотвращает бесконечную рекурсию, которая может привести к переполнению стека C и аварийному завершению Python. Его можно установить с помощью функции setrecursionlimit().

sys.getsizeof(object[, default])

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

Учитывается только потребление памяти, непосредственно относящееся к объекту, а не потребление памяти объектов, на которые он ссылается.

Если указан default, он возвращается, если объект не предоставляет способ получения размера. В противном случае возбуждается исключение TypeError.

Вызов getsizeof() вызывает метод __sizeof__ объекта и добавляет дополнительную нагрузку сборщика мусора, если объект управляется сборщиком мусора.

См. рецепт рекурсивного sizeof для примера использования getsizeof() рекурсивно для определения размера контейнеров и всех их содержимого.

sys.getswitchinterval()

Возвращает «интервал переключения потоков» интерпретатора; см. setswitchinterval().

Добавлен в версии 3.2.

sys._getframe([depth])

Возвращает объект кадра из стека вызовов. Если задан необязательный целочисленный параметр depth, возвращается объект кадра, находящийся на указанную глубину ниже вершины стека. Если эта глубина больше, чем глубина стека вызовов, возбуждается исключение ValueError. По умолчанию depth равен нулю, и возвращается кадр на вершине стека вызовов.

Деталь реализации CPython: Эта функция должна использоваться только для внутренних и специализированных целей. Не гарантируется, что она будет существовать во всех реализациях Python.

sys.getprofile()

Получает функцию профилирования, установленную с помощью setprofile().

sys.gettrace()

Получает функцию отслеживания, установленную с помощью settrace().

Деталь реализации CPython: Функция gettrace() предназначена только для реализации отладчиков, профилировщиков, инструментов покрытия и т. п. Ее поведение является частью платформы реализации, а не частью определения языка, и поэтому может быть недоступно во всех реализациях Python.

sys.getwindowsversion()

Возвращает кортеж с именем, описывающий текущую версию Windows. Имена элементов: major, minor, build, platform, service_pack, service_pack_minor, service_pack_major, suite_mask, product_type и platform_version. service_pack содержит строку, platform_version — кортеж из 3 элементов, а все остальные значения — целые числа. К элементам можно также обратиться по имени, поэтому sys.getwindowsversion()[0] эквивалентно sys.getwindowsversion().major. Для совместимости с предыдущими версиями доступны только первые 5 элементов при обращении по индексу.

platform будет 2 (VER_PLATFORM_WIN32_NT).

product_type может принимать следующие значения:

Константа

Значение

1 (VER_NT_WORKSTATION)

Система — рабочая станция.

2 (VER_NT_DOMAIN_CONTROLLER)

Система — контроллер домена.

3 (VER_NT_SERVER)

Система — сервер, но не контроллер домена.

Эта функция оборачивает функцию Win32 GetVersionEx(). См. документацию Microsoft по OSVERSIONINFOEX() для получения дополнительной информации об этих полях.

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

Доступность: Windows.

Изменено в версии 3.2: Изменено на кортеж с именем и добавлены service_pack_minor, service_pack_major, suite_mask и product_type.

Изменено в версии 3.6: Добавлен platform_version

sys.get_asyncgen_hooks()

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

Добавлен в версии 3.6: См. PEP 525 для получения дополнительной информации.

Примечание

Эта функция добавлена на временной основе (см. PEP 411 для получения подробностей).

END_OF_DOCUMENT_MARKER
sys.get_coroutine_origin_tracking_depth()

Получить текущую глубину отслеживания источника корутины, установленную функцией set_coroutine_origin_tracking_depth().

Добавлена в версии 3.7.

Примечание

Эта функция добавлена на временной основе (см. PEP 411 для подробностей). Используйте её только для отладки.

sys.get_coroutine_wrapper()

Возвращает None, или обёртку, установленную функцией set_coroutine_wrapper().

Добавлена в версии 3.5: См. PEP 492 для более подробной информации.

Примечание

Эта функция добавлена на временной основе (см. PEP 411 для подробностей). Используйте её только для отладки.

Устарело начиная с версии 3.7: Функциональность обёртки корутин устарела и будет удалена в версии 3.8. См. bpo-32591 для подробностей.

sys.hash_info

Кортеж с именами, содержащий параметры реализации числового хеширования. Для получения дополнительной информации о хешировании числовых типов см. Хеширование числовых типов.

атрибут

объяснение

width

размер в битах, используемый для значений хеша

modulus

простое модульное число P, используемое для числовой схемы хеширования

inf

значение хеша, возвращаемое для положительной бесконечности

nan

значение хеша, возвращаемое для NaN

imag

множитель, используемый для мнимой части комплексного числа

algorithm

имя алгоритма хеширования для str, bytes и memoryview

hash_bits

внутренний размер вывода алгоритма хеширования

seed_bits

размер ключа-семени алгоритма хеширования

Добавлена в версии 3.2.

Изменено в версии 3.4: Добавлены algorithm, hash_bits и seed_bits

sys.hexversion

Номер версии, закодированный в единственном целочисленном значении. Гарантируется, что он увеличивается с каждой версией, включая надлежащую поддержку нерелизных версий. Например, чтобы проверить, что интерпретатор Python имеет версию не ниже 1.5.2, используйте:

if sys.hexversion >= 0x010502F0:
    # use some advanced feature
    ...
else:
    # use an alternative implementation or warn the user
    ...

Это называется hexversion , поскольку оно действительно приобретает смысл только при представлении в виде результата функции hex() . Для более удобного отображения этой информации можно использовать кортеж с именами sys.version_info.

Дополнительную информацию о hexversion можно найти в Версии API и ABI.

sys.implementation

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

name — идентификатор реализации, например, 'cpython'. Фактическая строка определяется реализацией Python, но гарантируется, что она будет в нижнем регистре.

version — кортеж с именами, в том же формате, что и sys.version_info. Он представляет версию реализации Python. Это имеет разное значение от конкретной версии языка Python, которому соответствует текущий интерпретатор, которую представляет sys.version_info. Например, для PyPy 1.8 sys.implementation.version может быть sys.version_info(1, 8, 0, 'final', 0), в то время как sys.version_info будет sys.version_info(2, 7, 2, 'final', 0). Для CPython они имеют одинаковое значение, поскольку это реализация по умолчанию.

hexversion — версия реализации в шестнадцатеричном формате, как у sys.hexversion.

cache_tag — тег, используемый механизмом импорта в именах файлов кэшированных модулей. Как правило, он представляет собой сочетание имени и версии реализации, например, 'cpython-33'. Однако реализация Python может использовать другое значение, если это уместно. Если cache_tag установлено в значение None, это указывает на то, что кэширование модулей должно быть отключено.

sys.implementation может содержать дополнительные атрибуты, специфичные для реализации Python. Эти нестандартные атрибуты должны начинаться с нижнего подчеркивания и не описаны здесь. Независимо от его содержимого, sys.implementation не будет изменяться во время выполнения интерпретатора, а также между версиями реализации. (Однако он может изменяться между версиями языка Python). См. PEP 421 для получения дополнительной информации.

Добавлена в версии 3.3.

Примечание

Добавление новых обязательных атрибутов должно происходить через стандартный процесс PEP. См. PEP 421 для получения дополнительной информации.

sys.int_info

Кортеж с именами, содержащий информацию о внутренней представлении целых чисел в Python. Атрибуты только для чтения.

Атрибут

Объяснение

bits_per_digit

количество битов, содержащихся в каждом разряде. Целые числа Python хранятся во внутренней базе 2**int_info.bits_per_digit

sizeof_digit

размер в байтах типа C, используемого для представления разряда

Добавлена в версии 3.1.

sys.__interactivehook__

Когда этот атрибут существует, его значение автоматически вызывается (без аргументов) при запуске интерпретатора в интерактивном режиме. Это делается после чтения файла PYTHONSTARTUP, поэтому вы можете установить этот обработчик там. Модуль site устанавливает это значение.

Добавлена в версии 3.4.

sys.intern(string)

Включить строку в таблицу «интернированных» строк и вернуть интернированную строку — это сама строка или её копия. Интернирование строк полезно для повышения производительности при поиске в словаре — если ключи в словаре интернированы, а ключ поиска интернирован, сравнения ключей (после хеширования) можно выполнять по указателям вместо сравнения строк. Как правило, имена, используемые в программах Python, автоматически интернируются, а словари, используемые для хранения атрибутов модулей, классов или экземпляров, имеют интернированные ключи.

Интернированные строки не бессмертны; вы должны сохранить ссылку на возвращаемое значение intern() , чтобы извлечь выгоду из этого.

sys.is_finalizing()

Возвращает True , если интерпретатор Python завершает работу, False в противном случае.

Добавлена в версии 3.5.

END_OF_DOCUMENT_MARKER
sys.last_type
sys.last_value
sys.last_traceback

Эти три переменные не всегда определены; они устанавливаются, когда исключение не обрабатывается, и интерпретатор выводит сообщение об ошибке и трассировку стека. Их предполагаемое использование заключается в том, чтобы позволить интерактивному пользователю импортировать модуль отладчика и заняться постобъёмной отладкой без необходимости повторного выполнения команды, вызвавшей ошибку. (Типичное использование — import pdb; pdb.pm() для входа в постобъёмной отладчик; см. pdb модуль для получения дополнительной информации.)

Значение переменных такое же, как у возвращаемых значений из exc_info() выше.

sys.maxsize

Целое число, задающее максимальное значение, которое может принимать переменная типа Py_ssize_t. Обычно это 2**31 - 1 на 32-битной платформе и 2**63 - 1 на 64-битной платформе.

sys.maxunicode

Целое число, задающее значение самого большого кодового пункта Юникода, т. е. 1114111 (0x10FFFF в шестнадцатеричном формате).

Изменено в версии 3.3: До PEP 393, sys.maxunicode обычно было либо 0xFFFF или 0x10FFFF, в зависимости от параметра конфигурации, указывающего, хранятся ли символы Юникода как UCS-2 или UCS-4.

sys.meta_path

Список объектов поисковика метапути, которые вызывают свои методы find_spec() для определения, может ли какой-либо из объектов найти импортируемый модуль. Метод find_spec() вызывается как минимум с абсолютным именем импортируемого модуля. Если импортируемый модуль содержится в пакете, то атрибут __path__ родительского пакета передаётся как второй аргумент. Метод возвращает спецификацию модуля или None, если модуль не найден.

См. также

importlib.abc.MetaPathFinder

Абстрактный базовый класс, определяющий интерфейс объектов-поисковиков в meta_path.

importlib.machinery.ModuleSpec

Конкретный класс, экземпляры которого должен возвращать find_spec().

Изменено в версии 3.4: Спецификации модулей были введены в Python 3.4, PEP 451. Более ранние версии Python искали метод под названием find_module(). Это всё ещё вызывается в качестве резервного варианта, если у записи в meta_path нет метода find_spec().

sys.modules

Это словарь, сопоставляющий имена модулей с уже загруженными модулями. Его можно изменять для принудительной перезагрузки модулей и других трюков. Однако замена словаря не обязательно будет работать как ожидается, а удаление важных элементов из словаря может привести к сбою Python.

sys.path

Список строк, определяющий путь поиска модулей. Инициализируется из переменной окружения PYTHONPATH, а также от зависимого от установки значения по умолчанию.

При инициализации при запуске программы первый элемент этого списка, path[0], — это каталог, содержащий скрипт, который был использован для вызова интерпретатора Python. Если каталог скрипта недоступен (например, если интерпретатор вызван интерактивно или если скрипт считывается из стандартного ввода), path[0] — это пустая строка, что заставляет Python сначала искать модули в текущем каталоге. Обратите внимание, что каталог скрипта вставляется *перед* записями, добавленными в результате PYTHONPATH.

Программа свободна изменять этот список по своему усмотрению. В sys.path следует добавлять только строки и байтовые объекты; все другие типы данных игнорируются при импорте.

См. также

Модуль site. Он описывает, как использовать файлы .pth для расширения sys.path.

sys.path_hooks

Список вызываемых объектов, которые принимают аргумент пути для попытки создания поисковика для пути. Если поисковик может быть создан, он должен быть возвращён вызываемым объектом, в противном случае следует поднять ImportError.

Первоначально описано в PEP 302.

sys.path_importer_cache

Словарь, используемый в качестве кэша для объектов поисковика. Ключи — это пути, которые были переданы sys.path_hooks, а значения — найденные поисковики. Если путь является допустимым путём в файловой системе, но поисковик не найден в sys.path_hooks, то None хранится.

Первоначально описано в PEP 302.

Изменено в версии 3.3: None хранится вместо imp.NullImporter, если поисковик не найден.

sys.platform

Эта строка содержит идентификатор платформы, который может быть использован для добавления платформозависимых компонентов в sys.path, например.

Для систем Unix, кроме Linux, это имя ОС в нижнем регистре, возвращаемое uname -s с первой частью версии, возвращаемой uname -r, добавленной, например, 'sunos5' или 'freebsd8', *на момент сборки Python*. Если вы не хотите проверять конкретную версию системы, рекомендуется использовать следующий фрагмент кода:

if sys.platform.startswith('freebsd'):
    # FreeBSD-specific code here...
elif sys.platform.startswith('linux'):
    # Linux-specific code here...

Для других систем значения следующие:

Система

значение platform

Linux

'linux'

Windows

'win32'

Windows/Cygwin

'cygwin'

Mac OS X

'darwin'

Изменено в версии 3.3: В Linux, sys.platform больше не содержит основной версии. Теперь всегда 'linux', а не 'linux2' или 'linux3'. Поскольку в более старых версиях Python присутствует номер версии, рекомендуется всегда использовать приведённый выше фрагмент кода.

См. также

os.name имеет более грубую гранулярность. os.uname() предоставляет платформозависимую информацию о версии системы.

Модуль platform предоставляет подробные проверки идентификации системы.

sys.prefix

Строка, задающая префикс каталога, специфичный для сайта, где установлены независимые от платформы файлы Python; по умолчанию это строка '/usr/local'. Это можно установить во время сборки, используя аргумент --prefix скрипта configure. Основное собрание модулей Python устанавливается в каталог prefix/lib/pythonX.Y, а независимые от платформы заголовочные файлы (кроме pyconfig.h ) хранятся в prefix/include/pythonX.Y, где X.Y — номер версии Python, например 3.2.

Примечание

Если активна виртуальная среда виртуальной среды, это значение будет изменено в site.py для указания на виртуальную среду. Значение для установки Python по-прежнему будет доступно через base_prefix.

sys.ps1
sys.ps2

Строки, определяющие первичный и вторичный пригласительные знаки интерпретатора. Они определены только если интерпретатор находится в интерактивном режиме. Их начальные значения в этом случае — '>>> ' и '... '. Если переменной присвоено нестроковое значение, его str() переоценивается каждый раз, когда интерпретатор готовится к чтению новой интерактивной команды; это позволяет реализовать динамическое приглашение.

sys.setcheckinterval(interval)

Установите «интервал проверки» интерпретатора. Это целочисленное значение определяет, как часто интерпретатор проверяет периодические вещи, такие как переключение потоков и обработчики сигналов. По умолчанию значение равно 100, что означает, что проверка выполняется каждые 100 виртуальных инструкций Python. Увеличение этого значения может повысить производительность программ, использующих потоки. Установка значения <= 0 проверяет каждую виртуальную инструкцию, максимизируя отзывчивость, а также накладные расходы.

Устарело начиная с версии 3.2: Эта функция больше не оказывает влияния, так как внутренняя логика переключения потоков и асинхронных задач была переписана. Используйте setswitchinterval() вместо этого.

sys.setdlopenflags(n)

Установите флаги, используемые интерпретатором для вызовов dlopen(), например, при загрузке интерпретатором модулей расширения. Среди прочего, это позволит выполнить ленивое разрешение символов при импорте модуля, если вызов имеет вид sys.setdlopenflags(0). Чтобы совместно использовать символы между модулями расширений, вызовите как sys.setdlopenflags(os.RTLD_GLOBAL). Символьные имена значений флагов можно найти в модуле os (RTLD_xxx константы, например, os.RTLD_LAZY).

Доступность: Unix.

sys.setprofile(profilefunc)

Установите системную функцию профилирования, которая позволяет реализовать профайлер кода Python на Python. Подробнее см. главу Профайлеры Python. Функция профилирования системы вызывается аналогично функции отслеживания системы (см. settrace()), но вызывается с другими событиями, например, она не вызывается для каждой выполняемой строки кода (только при вызове и возврате, но событие возврата сообщается даже при возникновении исключения). Функция специфична для потока, но нет способа для профайлера узнать о переключениях контекста между потоками, поэтому нет смысла использовать ее при наличии нескольких потоков. Кроме того, ее возвращаемое значение не используется, поэтому она может просто возвращать None. Ошибка в функции профилирования приведет к ее отмене.

Функции профилирования должны иметь три аргумента: frame, event и arg. frame — текущая кадр стека. event — строка: 'call', 'return', 'c_call', 'c_return', или 'c_exception'. arg зависит от типа события.

События имеют следующее значение:

'call'

Функция вызывается (или введен какой-либо другой блок кода). Функция профилирования вызывается; arg — None.

'return'

Функция (или другой блок кода) собирается возвратиться. Функция профилирования вызывается; arg — значение, которое будет возвращено, или None если событие вызвано возникновением исключения.

'c_call'

Собирается вызвать функцию C. Это может быть функция расширения или встроенная функция. arg — объект функции C.

'c_return'

Функция C возвратила значение. arg — объект функции C.

'c_exception'

Функция C вызвала исключение. arg — объект функции C.

sys.setrecursionlimit(limit)

Установите максимальную глубину стека интерпретатора Python на limit. Это ограничение предотвращает бесконечную рекурсию от переполнения стека C и сбоя Python.

Максимально возможная граница зависит от платформы. Пользователю может потребоваться установить более высокую границу, если программа требует глубокой рекурсии и платформа поддерживает более высокую границу. Это следует делать с осторожностью, так как слишком высокая граница может привести к сбою.

Если новая граница слишком низка на текущей глубине рекурсии, возникает исключение RecursionError.

Изменено в версии 3.5.1: Теперь возникает исключение RecursionError, если новая граница слишком мала на текущей глубине рекурсии.

sys.setswitchinterval(interval)

Установите интервал переключения потоков интерпретатора (в секундах). Это число с плавающей точкой определяет желательную длительность «временных квантов», выделенных для одновременного выполнения потоков Python. Обратите внимание, что фактическое значение может быть больше, особенно если используются длительные внутренние функции или методы. Также, какой поток будет запланирован в конце интервала, — решение операционной системы. Интерпретатор не имеет собственного планировщика.

Добавлена в версии 3.2.

END_OF_DOCUMENT_MARKER
sys.settrace(tracefunc)

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

Функции отслеживания должны иметь три аргумента: frame, event и arg. frame — текущая рамка стека. event — строка: 'call', 'line', 'return', 'exception' или 'opcode'. arg зависит от типа события.

Функция отслеживания вызывается (с event, установленным на 'call') всякий раз, когда вводится новая область видимости; она должна возвращать ссылку на локальную функцию отслеживания, которая будет использоваться для новой области видимости, или None если область видимости не должна отслеживаться.

Локальная функция отслеживания должна возвращать ссылку на себя (или на другую функцию для дальнейшего отслеживания в этой области видимости) или None для отключения отслеживания в этой области видимости.

Если в функции отслеживания произошла ошибка, она будет снята, точно так же, как если бы была вызвана settrace(None).

События имеют следующие значения:

'call'

Вызывается функция (или какой-либо другой блок кода). Вызывается глобальная функция отслеживания; arg — None; возвращаемое значение определяет локальную функцию отслеживания.

'line'

Интерпретатор собирается выполнить новую строку кода или повторно выполнить условие цикла. Вызывается локальная функция отслеживания; arg — None; возвращаемое значение определяет новую локальную функцию отслеживания. См. Objects/lnotab_notes.txt для подробного объяснения, как это работает. События по строкам могут быть отключены для кадра, установив f_trace_lines на False в этом кадре.

'return'

Функция (или другой блок кода) собирается вернуть. Вызывается локальная функция отслеживания; arg — значение, которое будет возвращено, или None если событие вызвано поднятием исключения. Возвращаемое значение функции отслеживания игнорируется.

'exception'

Произошло исключение. Вызывается локальная функция отслеживания; arg — кортеж (exception, value, traceback); возвращаемое значение определяет новую локальную функцию отслеживания.

'opcode'

Интерпретатор собирается выполнить новый оператор кода (см. dis для подробностей об операторах кода). Вызывается локальная функция отслеживания; arg — None; возвращаемое значение определяет новую локальную функцию отслеживания. События по операторам кода по умолчанию не генерируются: они должны быть явно запрошены, установив f_trace_opcodes на True в кадре.

Обратите внимание, что при распространении исключения вниз по цепочке вызывающих функций событие 'exception' генерируется на каждом уровне.

Для более тонкой настройки можно установить функцию отслеживания, явно присвоив frame.f_trace = tracefunc вместо того, чтобы полагаться на ее косвенное назначение через возвращаемое значение уже установленной функции отслеживания. Это также необходимо для активации функции отслеживания в текущей рамке, чего settrace() не делает. Обратите внимание, что для этого должна быть установлена глобальная функция отслеживания с помощью settrace() для активации механизма отслеживания в runtime, но это может быть не та же функция отслеживания (например, это может быть функция отслеживания с низкой загрузкой, которая просто возвращает None для отключения себя сразу в каждом кадре).

Дополнительную информацию о кодовых объектах и объектах фреймов см. в Стандартной иерархии типов.

Подробность реализации CPython: Функция settrace() предназначена только для реализации отладчиков, профилеров, инструментов покрытия и т. п. Ее поведение является частью реализации платформы, а не частью определения языка, и, следовательно, может быть недоступно во всех реализациях Python.

Изменено в версии 3.7: 'opcode' тип события добавлен; f_trace_lines и f_trace_opcodes атрибуты добавлены в кадры

sys.set_asyncgen_hooks(firstiter, finalizer)

Принимает два необязательных ключевых аргумента, которые являются вызываемыми объектами, принимающими итератор асинхронного генератора в качестве аргумента. Вызываемый объект firstiter будет вызван, когда асинхронный генератор будет итеративно обработан в первый раз. Вызываемый объект finalizer будет вызван, когда асинхронный генератор собирается быть удален сборщиком мусора.

Введено в версии 3.6: См. PEP 525 для получения дополнительных сведений, а пример реализации метода finalizer см. в реализации asyncio.Loop.shutdown_asyncgens в Lib/asyncio/base_events.py

Примечание

Эта функция добавлена на временной основе (см. PEP 411 для получения подробностей).

sys.set_coroutine_origin_tracking_depth(depth)

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

Для включения передайте значение depth больше нуля; это устанавливает количество кадров, информация о которых будет захвачена. Для отключения передайте значение depth, равное нулю.

Эта настройка специфична для потока.

Введено в версии 3.7.

Примечание

Эта функция добавлена на временной основе (см. PEP 411 для получения подробностей). Используйте ее только для отладки.

sys.set_coroutine_wrapper(wrapper)

Позволяет перехватывать создание объектов сопрограмм (только те, которые создаются функцией async def; генераторы, оформленные с помощью types.coroutine() или asyncio.coroutine(), не будут перехвачены).

Аргумент wrapper должен быть либо:

  • вызываемый объект, принимающий один аргумент (объект сопрограммы);
  • None, чтобы сбросить обёртку.

Если вызов производится дважды, новая обертка заменяет предыдущую. Функция специфична для потока.

Вызываемый объект wrapper не может определять новые сопрограммы напрямую или косвенно:

def wrapper(coro):
    async def wrap(coro):
        return await coro
    return wrap(coro)
sys.set_coroutine_wrapper(wrapper)

async def foo():
    pass

# The following line will fail with a RuntimeError, because
# ``wrapper`` creates a ``wrap(coro)`` coroutine:
foo()

См. также get_coroutine_wrapper().

Введено в версии 3.5: См. PEP 492 для получения дополнительных сведений.

Примечание

Эта функция добавлена на временной основе (см. PEP 411 для получения подробностей). Используйте ее только для отладки.

Устарело начиная с версии 3.7: Функциональность обертки сопрограмм устарела и будет удалена в версии 3.8. См. bpo-32591 для получения подробностей.

sys._enablelegacywindowsfsencoding()

Изменяет кодировку и режим ошибок системного файла по умолчанию на «mbcs» и «replace» соответственно для согласованности с версиями Python до 3.6.

Это эквивалентно определению переменной среды PYTHONLEGACYWINDOWSFSENCODING перед запуском Python.

Доступность: Windows.

Введено в версии 3.6: См. PEP 529 для получения дополнительных сведений.

sys.stdin
sys.stdout
sys.stderr

Объекты файлов, используемые интерпретатором для стандартного ввода, вывода и ошибок:

  • stdin используется для всего интерактивного ввода (включая вызовы input());
  • stdout используется для вывода print() и операторов выражений, а также для подсказок input();
  • Вводные сообщения и сообщения об ошибках интерпретатора выводятся в stderr.

Эти потоки являются обычными текстовыми файлами, как те, которые возвращаются функцией open(). Их параметры выбираются следующим образом:

  • Кодировка символов зависит от платформы. На платформах, не являющихся Windows, используется кодировка локали (см. locale.getpreferredencoding()).

    В Windows для устройства консоли используется UTF-8. Для устройств, не являющихся символьными (например, файлы на диске и каналы), используется кодировка системы локали (т.е. кодовая страница ANSI). Для неконсольных символьных устройств, таких как NUL (т.е. когда isatty() возвращает True), соответственно для stdin и stdout/stderr используются значения кодовых страниц ввода и вывода консоли при запуске. По умолчанию, если процесс изначально не подключен к консоли, используется кодировка системы локали.

    Специальное поведение консоли можно переопределить, задав переменную среды PYTHONLEGACYWINDOWSSTDIO перед запуском Python. В этом случае, для кодовых страниц консоли используются те же правила, что и для других символьных устройств.

    На всех платформах вы можете переопределить кодировку символов, задав переменную среды PYTHONIOENCODING перед запуском Python или используя новый -X utf8 командную опцию и переменную среды PYTHONUTF8. Однако для консоли Windows это применяется только в том случае, если также установлена PYTHONLEGACYWINDOWSSTDIO.

  • В интерактивном режиме потоки stdout и stderr имеют построчную буферизацию. В противном случае они имеют блочную буферизацию, как обычные текстовые файлы. Вы можете переопределить это значение с помощью командной опции -u.

Примечание

Для записи или чтения двоичных данных в/из стандартных потоков используйте базовый двоичный buffer объект. Например, для записи байтов в stdout, используйте sys.stdout.buffer.write(b'abc').

Однако, если вы пишете библиотеку (и не контролируете контекст, в котором будет выполняться её код), помните, что стандартные потоки могут быть заменены на объекты, подобные файлам, например, io.StringIO, которые не поддерживают атрибут buffer.

sys.__stdin__
sys.__stdout__
sys.__stderr__

Эти объекты содержат исходные значения stdin, stderr и stdout в начале программы. Они используются во время завершения и могут быть полезны для вывода в фактический стандартный поток, независимо от того, был ли перенаправлен объект sys.std*.

Это также может быть использовано для восстановления фактических файлов до известных рабочих объектов файлов в случае их перезаписи повреждённым объектом. Однако предпочтительный способ сделать это - явно сохранить предыдущий поток перед его заменой и восстановить сохранённый объект.

Примечание

В некоторых условиях stdin, stdout и stderr, а также исходные значения __stdin__, __stdout__ и __stderr__ могут быть None. Это обычно происходит в приложениях Windows GUI, которые не подключены к консоли, и приложениях Python, запущенных с помощью pythonw.

sys.thread_info

Именованная кортеж содержащий информацию о реализации потоков.

Атрибут

Описание

name

Имя реализации потоков:

  • 'nt': Потоки Windows
  • 'pthread': Потоки POSIX
  • 'solaris': Потоки Solaris

lock

Имя реализации блокировки:

  • 'semaphore': Блокировка использует семафор
  • 'mutex+cond': Блокировка использует мьютекс и переменную условия
  • None если эта информация неизвестна

version

Имя и версия библиотеки потоков. Это строка или None если эта информация неизвестна.

Новое в версии 3.3.

sys.tracebacklimit

При установке этого переменной в целочисленное значение, она определяет максимальное количество уровней отладочной информации, выводимых при возникновении необработанного исключения. По умолчанию 1000. При установке в 0 или меньше, вся информация об отладке подавляется и выводятся только тип и значение исключения.

sys.version

Строка, содержащая номер версии интерпретатора Python плюс дополнительная информация о номере сборки и компиляторе, используемом. Эта строка отображается при запуске интерактивного интерпретатора. Не извлекайте из неё информацию о версии, вместо этого используйте version_info и функции, предоставляемые модулем platform.

sys.api_version

Версия API C для этого интерпретатора. Программистам может быть полезна при отладке конфликтов версий между Python и модулями расширений.

sys.version_info

Кортеж, содержащий пять компонентов номера версии: major, minor, micro, releaselevel и serial. Все значения, кроме releaselevel, являются целыми числами; уровень выпуска — 'alpha', 'beta', 'candidate', или 'final'. Значение version_info соответствующее версии Python 2.0, равно (2, 0, 0, 'final', 0). Компоненты также можно получить по имени, поэтому sys.version_info[0] эквивалентно sys.version_info.major и так далее.

Изменено в версии 3.1: Добавлены именованные атрибуты компонентов.

sys.warnoptions

Это деталь реализации фреймворка предупреждений; не изменяйте это значение. Обратитесь к модулю warnings для получения более подробной информации о фреймворке предупреждений.

sys.winver

Номер версии, используемый для формирования ключей реестра на платформах Windows. Он хранится как строковый ресурс 1000 в DLL Python. Значение обычно является первыми тремя символами version. Предоставляется в модуле sys для справочных целей; изменение этого значения не влияет на ключи реестра, используемые Python.

Доступность: Windows.

sys._xoptions

Словарь различных флагов, специфичных для реализации, передаваемых через командную опцию -X. Имена опций сопоставляются либо со значениями, если они заданы явно, либо с True. Пример:

$ ./python -Xa=b -Xc
Python 3.2a3+ (py3k, Oct 16 2010, 20:14:50)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys._xoptions
{'a': 'b', 'c': True}

Деталь реализации CPython: Это специфичный для CPython способ доступа к опциям, переданным через -X. Другие реализации могут экспортировать их другими способами или вообще не экспортировать.

Новое в версии 3.2.

Цитаты

C99

ISO/IEC 9899:1999. «Языки программирования – C». Публичный проект этого стандарта доступен по адресу http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1256.pdf.

© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.7/library/sys.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API