Python · Essencial · Português · Técnico
identidade de objeto
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)) # FalseExemplos
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