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.
Uso Básico
Nesta etapa, começaremos com o uso mais básico do operador is.
- Abra o Interpretador Python no terminal.
python3
- Defina duas variáveis,
aeb, e atribua o mesmo valor a ambas.
a = "Hello"
b = "Hello"
- Imprima o endereço de memória de
aebusando a funçãoid().
print(id(a))
print(id(b))
- Use o operador
ispara verificar seaebse 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.
- Defina duas variáveis,
ced, e atribua a ambas uma lista vazia[].
c = []
d = []
- Imprima o endereço de memória de
cedusando a funçãoid().
print(id(c))
print(id(d))
- Use o operador
ispara verificar secedse 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.
- Agora, defina duas variáveis,
eef, e atribua a ambas um valor inteiro.
e = 10
f = 10
- Imprima o endereço de memória de
eefusando a funçãoid().
print(id(e))
print(id(f))
- Use o operador
ispara verificar seeefse 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.
- Defina uma função
my_function()que recebe dois parâmetros,xey.
def my_function(x, y):
print(x is y)
- 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.
- Defina uma classe
MyClasscom um atributovalue.
class MyClass:
def __init__(self, value):
self.value = value
- Defina duas instâncias da classe
MyClass,obj1eobj2, com o mesmovalue.
obj1 = MyClass("Hello")
obj2 = MyClass("Hello")
- Imprima o endereço de memória de
obj1.valueeobj2.valueusando a funçãoid().
print(id(obj1.value))
print(id(obj2.value))
- Use o operador
ispara verificar seobj1.valueeobj2.valuese 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.
- Agora, defina duas instâncias da classe
MyClass,obj3eobj4, com um objeto mutável como seuvalue.
obj3 = MyClass([])
obj4 = MyClass([])
- Imprima o endereço de memória de
obj3.valueeobj4.valueusando a funçãoid().
print(id(obj3.value))
print(id(obj4.value))
- Use o operador
ispara verificar seobj3.valueeobj4.valuese 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.



