Operador 'is' em Python

PythonBeginner
Pratique Agora

Introdução

O operador is em Python é usado para verificar se duas variáveis se referem ao mesmo objeto na memória. Isso é diferente do operador ==, que verifica se duas variáveis têm o mesmo valor. Neste laboratório, exploraremos como o operador is funciona e como ele pode ser útil na programação em Python. Este é um conceito importante de entender, especialmente ao trabalhar com objetos mutáveis como listas e dicionários. Neste laboratório, exploraremos o uso do operador is em Python com exemplos simples e complexos, e veremos como ele pode ser usado para escrever código eficiente e confiável.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 97%. Recebeu uma taxa de avaliações positivas de 100% dos estudantes.

Uso Básico

Nesta etapa, começaremos com o uso mais básico do operador is.

  1. Abra o Interpretador Python no terminal.
python3
  1. Defina duas variáveis, a e b, e atribua o mesmo valor a ambas.
a = "Hello"
b = "Hello"
  1. Imprima o endereço de memória de a e b usando a função id().
print(id(a))
print(id(b))
  1. Use o operador is para verificar se a e b se referem ao mesmo objeto.
print(a is b)

A saída do código acima deve ser True, pois a e b se referem ao mesmo objeto na memória.

Objetos Imutáveis vs. Mutáveis

Nesta etapa, exploraremos como o operador is se comporta com objetos imutáveis e mutáveis.

  1. Defina duas variáveis, c e d, e atribua a ambas uma lista vazia [].
c = []
d = []
  1. Imprima o endereço de memória de c e d usando a função id().
print(id(c))
print(id(d))
  1. Use o operador is para verificar se c e d se referem ao mesmo objeto.
print(c is d)

A saída do código acima deve ser False, pois c e d são objetos mutáveis e não são o mesmo objeto na memória.

  1. Agora, defina duas variáveis, e e f, e atribua a ambas um valor inteiro.
e = 10
f = 10
  1. Imprima o endereço de memória de e e f usando a função id().
print(id(e))
print(id(f))
  1. Use o operador is para verificar se e e f se referem ao mesmo objeto.
print(e is f)

A saída do código acima deve ser True, pois e e f são objetos imutáveis e compartilham o mesmo objeto na memória.

Parâmetros de Função

Nesta etapa, exploraremos como o operador is pode ser usado com parâmetros de função.

  1. Defina uma função my_function() que recebe dois parâmetros, x e y.
def my_function(x, y):
    print(x is y)
  1. Chame a função my_function() duas vezes, uma vez com objetos imutáveis e outra com objetos mutáveis.
my_function(10, 10)
my_function([], [])

A saída da primeira chamada deve ser True e a saída da segunda chamada deve ser False.

Uso Avançado

Nesta etapa, exploraremos alguns usos avançados do operador is.

  1. Defina uma classe MyClass com um atributo value.
class MyClass:
    def __init__(self, value):
        self.value = value
  1. Defina duas instâncias da classe MyClass, obj1 e obj2, com o mesmo value.
obj1 = MyClass("Hello")
obj2 = MyClass("Hello")
  1. Imprima o endereço de memória de obj1.value e obj2.value usando a função id().
print(id(obj1.value))
print(id(obj2.value))
  1. Use o operador is para verificar se obj1.value e obj2.value se referem ao mesmo objeto.
print(obj1.value is obj2.value)

A saída do código acima deve ser True, pois o atributo value é um objeto imutável e ambas as instâncias compartilham o mesmo objeto na memória.

  1. Agora, defina duas instâncias da classe MyClass, obj3 e obj4, com um objeto mutável como seu value.
obj3 = MyClass([])
obj4 = MyClass([])
  1. Imprima o endereço de memória de obj3.value e obj4.value usando a função id().
print(id(obj3.value))
print(id(obj4.value))
  1. Use o operador is para verificar se obj3.value e obj4.value se referem ao mesmo objeto.
print(obj3.value is obj4.value)

A saída do código acima deve ser False, pois o atributo value é um objeto mutável e ambas as instâncias não compartilham o mesmo objeto na memória.

Resumo

Neste laboratório, aprendemos sobre o operador is em Python e como ele pode ser usado para verificar se duas variáveis se referem ao mesmo objeto na memória. Exploramos o comportamento do operador is com objetos imutáveis e mutáveis, parâmetros de função e instâncias de classe. Ao entender o operador is, podemos escrever código Python mais eficiente e confiável.