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

ID Python ID ()

Функция Python ID (), идентификатор объекта Python, идентификатор объекта Python, ID объекта Python, использование функции ID () в Python, функция идентификации Python, ID ID объекта Python Integer.

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

Функция Python ID () Возвращает «идентичность» объекта. Личность объекта представляет собой целое число, которое гарантируется уникальным и постоянным для этого объекта в течение его жизни.

Два объекта с невыполненным временем, могут иметь то же значение ID (). В реализации CPYPHON это адрес объекта в памяти.

ID Python ID ()

Кэш Python Cache ID () Значение обычно используемых типов данных, таких как строка, целое число, кортежи и т. Д., Итак, вы можете обнаружить, что несколько переменных относятся к одному и тому же объекту и имеют то же значение ID (), если их значения одинаковы.

Давайте проверим это с примером.

# integers
a = 10
b = 10
c = 11
d = 12

print(id(a))
print(id(b))
print(id(c))
print(id(d))

Выход:

4317900064
4317900064
4317900096
4317900128

Обратите внимание, что значение ID () «A» и «B» являются одинаковыми, они имеют одинаковое целое значение.

Давайте посмотрим, получаем ли мы также подобное поведение со строкой и кортежами?

# tuples
t = ('A', 'B')
print(id(t))

t1 = ('A', 'B')
print(id(t1))

# strings
s1 = 'ABC'
s2 = 'ABC'
print(id(s1))
print(id(s2))

Выход:

4320130056
4320130056
4320080816
4320080816

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

Мы знаем, что словарь не неизменно, давайте посмотрим, если ID () отличается для разных словарей, даже если элементы такие же?

# dict
d1 = {"A": 1, "B": 2}
d2 = {"A": 1, "B": 2}
print(id(d1))
print(id(d2))

Выход:

4519884624
4519884768

Как мы думали, объекты Dict возвращаются разным значением ID (), и здесь кажется, нет кэширования.

Python ID () для пользовательского объекта

Давайте посмотрим простой пример получения значения ID () для пользовательского объекта.

class Emp:
    a = 0


e1 = Emp()
e2 = Emp()

print(id(e1))
print(id(e2))

Выход:

4520251744
4520251856

Резюме

Значение Python ID () гарантируется уникальным и постоянным для объекта. Мы можем использовать это, чтобы убедиться, что два объекта относятся к тому же объекту в памяти или нет.

Ссылка: Официальная документация