Рубрики
Без рубрики

Как получить текущее ссылочное значение объекта в Python?

Счетчик ссылок – это количество раз, когда объект будет ссылаться переменной. Если объект больше не ссылается, его можно безопасно удалить из памяти – какое использование объекта никто не заботится о том, чтобы в любом случае? Эта статья показывает, как подсчитать количество ссылок на объект Python. Что такое … Как получить текущий справочник объекта в Python? Подробнее “

Автор оригинала: Chris.

Счетчик ссылок – это количество раз, когда объект будет ссылаться переменной. Если объект больше не ссылается, его можно безопасно удалить из памяти – каково использование объекта никто не заботится о том, чтобы в любом случае? Эта статья показывает, как подсчитать количество ссылок на объект Python.

Какой текущий ссылочный счетчик объекта Python

Вопрос : Как получить текущий справочник объекта Python?

Ответ : Вы можете получить текущий ссылок с sys модуль getrefcount () метод. Например, чтобы получить количество раз переменной х ссылается, бегите sys.getrefcount (x) .

Вот общая стратегия для произвольного объект :

import sys
print(sys.getrefcount(object))

Следующий фрагмент кода показывает пример объекта x это имеет ссылочный счетчик 13. После создания новой ссылки Y к объекту х Количество ссылок увеличивается на один-14.

import sys


x = 42

print(sys.getrefcount(x))
# 13

y = x

print(sys.getrefcount(x))
# 14

Возможно, вы не ожидали, что первоначальный ссылочный счетчик 13. Итак, почему это? Давайте посмотрим.

Почему ссылочный счет выше, чем ожидалось?

Причина 1: неявный помощник переменных

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

Причина 2: временная ссылка в getrefcount ()

Обратите внимание, что, позвонив функцию getrefcount (x ), вы создаете дополнительную временную ссылку на объект x . Одно только это увеличивает ссылочный счетчик за другим.

Работая в качестве исследователя в распределенных системах, доктор Кристиан Майер нашел свою любовь к учению студентов компьютерных наук.

Чтобы помочь студентам достичь более высоких уровней успеха Python, он основал сайт программирования образования Finxter.com Отказ Он автор популярной книги программирования Python одноклассники (Nostarch 2020), Coauthor of Кофе-брейк Python Серия самооставленных книг, энтузиаста компьютерных наук, Фрилансера и владелец одного из лучших 10 крупнейших Питон блоги по всему миру.

Его страсти пишут, чтение и кодирование. Но его величайшая страсть состоит в том, чтобы служить стремлению кодер через Finxter и помогать им повысить свои навыки. Вы можете присоединиться к его бесплатной академии электронной почты здесь.

Оригинал: “https://blog.finxter.com/how-to-get-the-current-reference-count-of-an-object-in-python/”