ExpertiDict

Python · Essencial · Português · Técnico

identidade de objeto

/idẽtʃiˈdadʒi dʒi obˈʒɛtu/substantivo

Dois nomes têm a mesma identidade quando apontam para o mesmo objeto na memória. O operador is testa isso, enquanto == compara apenas os valores.

Onde usar

Aparece em code review quando alguém escreve x is 'abc' ou n is 1000 e obtém resultados imprevisíveis. A regra prática é usar is somente com None, True, False e sentinelas.

Em código

a = [1, 2]
b = [1, 2]
print(a == b)  # True
print(a is b)  # False
print(id(a) == id(b))  # False

Exemplos

Pra checar None use is, não igual igual.

A lista é igual, mas não é o mesmo objeto: a identidade é outra.

Cuidado

Não use is para comparar números ou strings: o resultado depende de otimizações do interpretador e pode mudar entre versões.

Sinônimos

is

Antônimos

igualdade de valor

Veja também

Todos os termos de Python