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

weakref.md

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

1> **Источник:** https://python-all.ru/3.0/c-api/weakref.html2>3> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.45---67# Объекты слабых ссылок89Python поддерживает *слабые ссылки* как объекты первого класса. Существует два конкретных типа объектов, которые напрямую реализуют слабые ссылки. Первый – простой объект-ссылка, а второй действует как прокси для исходного объекта, насколько это возможно.1011**\[PyWeakref\_Check\]int `PyWeakref_Check`(ob)**1213Возвращает true, если1415*ob*1617является объектом ссылки или прокси.1819**\[PyWeakref\_CheckRef\]int `PyWeakref_CheckRef`(ob)**2021Возвращает true, если2223*ob*2425является объектом ссылки.2627**\[PyWeakref\_CheckProxy\]int `PyWeakref_CheckProxy`(ob)**2829Возвращает true, если3031*ob*3233является прокси-объектом.3435**\[PyWeakref\_NewRef\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyWeakref_NewRef`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*callback*)**3637*Возвращаемое значение: новая ссылка.*3839Возвращает объект слабой ссылки для объекта *ob*. Всегда возвращает новую ссылку, но не гарантирует создания нового объекта; может быть возвращён существующий объект ссылки. Второй параметр, *колбэк*, может быть вызываемым объектом, который получает уведомление, когда *ob* собирается сборщиком мусора; он должен принимать один параметр – сам объект слабой ссылки. *колбэк* также может быть `None` или *NULL*. Если *ob* не является объектом, поддерживающим слабые ссылки, или если *колбэк* не является вызываемым, `None` или *NULL*, то возвращается *NULL* и возбуждается [`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError).4041**\[PyWeakref\_NewProxy\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyWeakref_NewProxy`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ob*, [PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*callback*)**4243*Возвращаемое значение: новая ссылка.*4445Возвращает прокси-объект слабой ссылки для объекта *ob*. Всегда возвращает новую ссылку, но не гарантирует создания нового объекта; существующий прокси-объект может быть возвращён. Второй параметр, *колбэк*, может быть вызываемым объектом, который получает уведомление, когда *ob* собирается сборщиком мусора; он должен принимать один параметр – сам объект слабой ссылки. *колбэк* также может быть `None` или *NULL*. Если *ob* не является объектом, поддерживающим слабые ссылки, или если *колбэк* не является вызываемым, `None` или *NULL*, то возвращается *NULL* и возбуждается [`TypeError`](https://python-all.ru/3.0/library/exceptions.html#exceptions.TypeError).4647**\[PyWeakref\_GetObject\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyWeakref_GetObject`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ref*)**4849*Возвращаемое значение: заимствованная ссылка.*5051Возвращает объект, на который ссылается слабая ссылка *ref*. Если объект-цель больше не существует, возвращает `None`.5253**\[PyWeakref\_GET\_OBJECT\][PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject)\* `PyWeakref_GET_OBJECT`([PyObject](https://python-all.ru/3.0/c-api/structures.html#PyObject) *\*ref*)**5455*Возвращаемое значение: заимствованная ссылка.*5657Похожа на [`PyWeakref_GetObject`](https://python-all.ru/3.0/c-api/weakref.html#PyWeakref_GetObject), но реализована в виде макроса, который не выполняет проверку ошибок.58