Python Glossary English

Python 3.14+concurrent.interpretersисключение

concurrent.interpreters.NotShareableError

исключения

Объект нельзя отправить в другой интерпретатор: он не поддерживает cross-interpreter data (Python 3.14+); подкласс TypeError.

Синтаксис

raise concurrent.interpreters.NotShareableError

Главная ловушка — класс наследуется от TypeError, поэтому общий except TypeError вокруг передачи данных проглотит его молча, и вы будете искать ошибку в аргументах. Круг разделяемых объектов узкий: простые неизменяемые значения проходят, а списки, словари и свои классы — нет; проверяйте is_shareable() заранее или передавайте данные в сериализованном виде, например JSON-строкой.

Примеры

from concurrent import interpreters  # Python 3.14+
print(issubclass(interpreters.NotShareableError, TypeError))  # → True
print(interpreters.is_shareable(42))  # → True
print(interpreters.is_shareable([1, 2, 3]))  # → False
interp = interpreters.create()
try:
    interp.prepare_main(data=object())  # object() не переносится между интерпретаторами
except interpreters.NotShareableError as e:
    print(type(e).__name__)  # → NotShareableError
interp.prepare_main(n=42)  # число — переносится
interp.close()

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности