Почему ctypes.c_long.from_address.value возвращает счетчик ссылок на объект?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Почему ctypes.c_long.from_address.value возвращает счетчик ссылок на объект?

Сообщение Anonymous »

На этой конференции pycon докладчик говорит, что ctypes.c_long.from_address(id(SOME_OBJECT)).value даст счетчик ссылок объекта.
Я пытался найти это в документации, но не нашел ничего, что мне помогло бы. В документе говорится:

from_address(адрес)
Этот метод возвращает тип ctypes. экземпляр, использующий память, указанную адресом, который должен быть целым числом.
Этот метод и другие, которые косвенно вызывают этот метод, вызывают событие аудита ctypes.cdata с адресом аргумента.

Это не упоминалось о подсчете ссылок (по крайней мере, я не могу этого понять). Я попробовал, и это кажется правильным:

Код: Выделить всё

Python 3.13.1 (main, Dec  3 2024, 17:59:52) [Clang 16.0.0 (clang-1600.0.26.4)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import ctypes, sys
>>> name = "some random name 123"
>>> sys.getrefcount(name)
2
>>> ctypes.c_long.from_address(id(name)).value
1
>>> x, y = name, name
>>> sys.getrefcount(name)
4
>>> ctypes.c_long.from_address(id(name)).value
3
Может кто-нибудь это объяснить?


Подробнее здесь: https://stackoverflow.com/questions/793 ... -an-object
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»