Resumo : neste tutorial, você aprenderá sobre o is
operador Python e as diferenças entre o is
operador e os ==
operadores de igualdade ().
Introdução ao operador Python is
O operador Python is
compara duas variáveis e retorna True
se elas fizerem referência ao mesmo objeto. Se as duas variáveis fizerem referência a objetos diferentes, o is
operador retornará False
.
Em outras palavras, o is
operador compara a identidade de duas variáveis e retorna True
se elas fizerem referência ao mesmo objeto.
Vejamos o seguinte exemplo:
a = 100
b = a
result = a is b
print(result)
Linguagem de código: PHP ( php )
Saída:
True
Linguagem de código: PHP ( php )
Como funciona:
- Primeiro, defina a
a
variável que faz referência a umint
objeto com o valor de100
. - Segundo, defina outra variável
b
que faça referência ao mesmo objeto referenciado pelaa
variável. - Terceiro, use o
is
operador para verificar sea
fazb
referência ao mesmo objeto e exibir o resultado.
Como ambos a
e b
referenciam o mesmo objeto, o resultado é True
.
O exemplo a seguir define duas variáveis a
e b
as inicializa como 100
:
a = 100
b = 100
result = a is b
print(result)
Linguagem de código: PHP ( php )
Saída:
True
Linguagem de código: PHP ( php )
Neste exemplo, não há ligação entre a
e b
. No entanto, quando você atribui 100
a b
, o Python Memory Manager reutiliza o objeto existente. Portanto, ambos a
e b
fazem referência ao mesmo objeto:
Observe que o resultado deste exemplo pode ser diferente, dependendo de como o Python Memory Manager é implementado. E você não deve contar com isso.
O exemplo a seguir define duas listas com os mesmos elementos e usa o is
operador para verificar se fazem referência ao mesmo objeto de lista:
ranks = [1, 2, 3]
rates = [1, 2, 3]
result = ranks is rates
print(result)
Linguagem de código: PHP ( php )
Saída:
False
Linguagem de código: PHP ( php )
Neste exemplo, as listas são objetos mutáveis . O Python Memory Manager não reutiliza a lista existente, mas cria uma nova na memória. Portanto, as variáveis ranks
e rates
fazem referência a listas diferentes:
Python é operador vs == operador
O operador de igualdade ( ==
) compara duas variáveis quanto à igualdade e retorna True
se elas forem iguais. Caso contrário, ele retorna False
.
O exemplo a seguir usa is
operador e ==
operador:
a = 100
b = a
is_identical = a is b
is_equal = a == b
print(is_identical)
print(is_equal)
Linguagem de código: PHP ( php )
Saída:
True
True
Linguagem de código: PHP ( php )
Como a
e b
faz referência ao mesmo objeto, ambos são idênticos e iguais.
No exemplo a seguir, ambas as listas têm os mesmos elementos, portanto são iguais.
No entanto, como fazem referência a diferentes objetos de lista na memória, eles não são idênticos:
ranks = [1, 2, 3]
rates = [1, 2, 3]
is_identical = ranks is rates
is_equal = ranks == rates
print(is_identical)
print(is_equal)
Linguagem de código: PHP ( php )
Saída:
False
True
Linguagem de código: PHP ( php )
Python não é operador
Para negar o is
operador, você usa o not
operador. O is not
operador retorna False
se duas variáveis fizerem referência ao mesmo objeto. Caso contrário, ele retorna True
.
O exemplo a seguir usa o is not
operador para verificar se as duas variáveis não fazem referência ao mesmo objeto de lista:
ranks = [1, 2, 3]
rates = [1, 2, 3]
result = ranks is not rates
print(result) # True
Linguagem de código: PHP ( php )
Saída:
True
Linguagem de código: PHP ( php )
Resumo
- Use o
is
operador para verificar se duas variáveis fazem referência ao mesmo objeto. - Use o
is
operador para verificar a identidade de duas variáveis e==
para verificar a igualdade de duas variáveis. - Use o
not
operador para negar o resultado dois
operador.