Search
Close this search box.
Operadores de identidade em Python
Operadores de identidade

Posts Relacionados:

Operadores de identidade em Python são úteis quando é necessário garantir que duas variáveis apontam para o mesmo objeto na memória, em vez de apenas verificar que elas possuem o mesmo valor.

Receba nossa newsletter

Operadores de Identidade em Python

Operadores de identidade em Python

Os operadores de identidade são uma ferramenta especializada para verificar locais de memória de objetos. Eles são particularmente indicados quando as comparações de igualdade de valor não são suficientes. Ao comparar os endereços de memória de dois objetos, os operadores de identidade determinam se eles fazem referência ao mesmo objeto na memória. Essa distinção no local de memória de objetos é crucial porque objetos diferentes podem ter os mesmos valores, mas residirem em locais de memória separados.

Os operadores de identidade são usados com menos frequência do que os operadores de comparação (== e !=) porque geralmente nos programas o foco é na igualdade de valor. Também é importante notar que, objetos mutáveis (como listas, dicionários) não são considerados o mesmo objeto pelos operadores de identidade mesmo quando possuem os mesmos elementos. Isso ocorre porque o Python cria novos objetos na memória para objetos mutáveis quando eles são atribuídos. Além disso, o Python pode reutilizar locais de memória para pequenos objetos imutáveis (inteiros, strings) com os mesmos valores.

Tipos de Operadores de Identidade

is

Retorna True se os operandos de ambos os lados se referirem ao mesmo objeto na memória.

				
					# exemplo 1
nb1 = 10
nb2 = 10

print(nb1 is nb2)
# resultado: True

# exemplo 2
nome1 = 'Maria'
nome2 = 'Maria'

print(nome1 is nome2)
# resultado: True
				
			

Mas atenção com o uso de operadores de identidade para objetos mutáveis como listas como explicado acima.

				
					
"""
IMPORTANTE: operadores de identidade não consideram objetos mutáveis
como iguais mesmo quando eles possuem os mesmos elementos 
"""

lista1 = ['Maria', 10]
lista2 = ['Maria', 10]

print(lista1 is lista2)
# resultado: False
				
			

is not

Retorna True se os operandos de ambos os lados não se referirem ao mesmo objeto na memória.

				
					lista1 = ['Maria', 10]
lista2 = ['Maria', 10]

print(lista1 is not lista2)
# resultado: True
				
			

Qual é a diferença entre os operadores is e ==?

Operadores de identidade são facilmente confundidos com operadores de igualdade (comparação). Portanto, é importante saber diferenciá-los bem. O operador == compara os valores de dois objetos e retorna True se eles forem iguais e False caso contrário. O operador is analisa a identidade (local da memória) de dois objetos e retorna True se eles ocuparem o mesmo local da memória e False caso contrário. Ou seja, o operador == verifica se os valores de dois objetos são os mesmos, enquanto o operador is verifica se as duas variáveis se referem ao mesmo objeto na memória.

				
					'''
o operador == verifica se os valores de dois objetos são os iguais
o operador is verifica se duas variáveis se referem ao mesmo objeto na memória
'''
set1 = {'Ana', 100, 'oi'}
set2 = {'Ana', 100, 'oi'}

print(set1 == set2)
# resultado: True
print(set1 is set2)
# resultado: False
				
			

Encontrou algum erro ou quer fazer uma sugestão? Por favor, entre em contato usando nosso formulário de contatos.

Imagem com IA Generativa – Dia 274

IA generativa img 274

Arte com IA generativa: imagem do dia

Todos os dias, postamos um exemplo de imagem artística gerada com inteligência artificial.

Tutoriais

Postagens Mais Recentes

Outras Postagens Que Podem Interessar

Veja
Mais

Fique em contato

Se inscreva para receber nossa newsletter com novidades.

aprendiz artificial