Документация Python неофициальный перевод

weakref.md

64 строк · 5.2 КБ · обычная страница · сырой текст · скачать

1> **Источник:** https://python-all.ru/2.7/c-api/weakref.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты слабых ссылок89Python поддерживает *слабые ссылки* как объекты первого класса. Существует два конкретных типа объектов, которые напрямую реализуют слабые ссылки. Первый – простой объект-ссылка, а второй действует как прокси для исходного объекта, насколько это возможно.1011#### `int PyWeakref_Check(ob)`1213Возвращает true, если *ob* является объектом ссылки или прокси.1415Новое в версии 2.2.1617#### `int PyWeakref_CheckRef(ob)`1819Возвращает true, если *ob* является объектом ссылки.2021Новое в версии 2.2.2223#### `int PyWeakref_CheckProxy(ob)`2425Возвращает true, если *ob* является прокси-объектом.2627Новое в версии 2.2.2829#### `PyObject* PyWeakref_NewRef(PyObject *ob, PyObject *callback)`3031*Возвращаемое значение: новая ссылка.*3233Возвращает объект слабой ссылки для объекта *ob*. Всегда возвращает новую ссылку, но не гарантирует создание нового объекта; может быть возвращён уже существующий объект ссылки. Второй параметр, *колбэк*, может быть вызываемым объектом, который получает уведомление, когда *ob* удаляется сборщиком мусора; он должен принимать один параметр – сам объект слабой ссылки. *колбэк* также может быть `None` или *NULL*. Если *ob* не является объектом, поддерживающим слабые ссылки, или если *колбэк* не является вызываемым, `None` или *NULL*, функция возвращает *NULL* и возбуждает [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).3435Новое в версии 2.2.3637#### `PyObject* PyWeakref_NewProxy(PyObject *ob, PyObject *callback)`3839*Возвращаемое значение: новая ссылка.*4041Возвращает прокси-объект слабой ссылки для объекта *ob*. Всегда возвращает новую ссылку, но не гарантирует создание нового объекта; может быть возвращён уже существующий прокси-объект. Второй параметр, *колбэк*, может быть вызываемым объектом, который получает уведомление, когда *ob* удаляется сборщиком мусора; он должен принимать один параметр – сам объект слабой ссылки. *колбэк* также может быть `None` или *NULL*. Если *ob* не является объектом, поддерживающим слабые ссылки, или если *колбэк* не является вызываемым, `None` или *NULL*, функция возвращает *NULL* и возбуждает [`TypeError`](https://python-all.ru/2.7/library/exceptions.html#exceptions.TypeError).4243Новое в версии 2.2.4445#### `PyObject* PyWeakref_GetObject(PyObject *ref)`4647*Возвращаемое значение: заимствованная ссылка.*4849Возвращает объект, на который ссылается слабая ссылка *ref*. Если этот объект уже удалён, возвращает `Py_None`.5051Новое в версии 2.2.5253> **Предупреждение**54>55> Эта функция возвращает **заимствованную ссылку** на указанный объект. Это означает, что для объекта всегда следует вызывать [`Py_INCREF()`](https://python-all.ru/2.7/c-api/refcounting.html#c.Py_INCREF), если только не известно, что он не может быть уничтожен во время его использования.5657#### `PyObject* PyWeakref_GET_OBJECT(PyObject *ref)`5859*Возвращаемое значение: заимствованная ссылка.*6061Аналогично [`PyWeakref_GetObject()`](https://python-all.ru/2.7/c-api/weakref.html#c.PyWeakref_GetObject), но реализовано как макрос, не выполняющий проверку ошибок.6263Новое в версии 2.2.64