Aula Prática 6 - Referências

Os objetivos desta aula são os seguinte: compreender melhor o conceito de referência; ter um primeiro contacto com coleções de objetos. Após a realização da prática, deverá ter sido adquirida uma noção dos seguintes conceitos:

  • Referência, igualdade e identidade
  • Comparação de objetos

Comparação de Objetos

Acrescente às classes que representam rectângulos e contactos telefónicos, desenvolvidas na aula anterior, os métodos necessários para que seja possível imprimir e comparar objetos deste tipo.

In [14]:
class Rectangle:

    def __init__(self, w, h):
        self.__w = w
        self.__h = h
    
    def __eq__(self, other):
        return self.__name == other.__name

    def __str__(self):
        return self.name + ", " +  str(self.phone)
In [15]:
class Contact:

    def __init__(self, name, phone):
        self.__name = name
        self.phone = phone

    @property
    def name(self):
        return self.__name

    def __eq__(self, other):
        if isinstance(other, self.__class__):
            return self.__name == other.__name and self.phone == other.phone
        else:
            return False

    def __str__(self):
        return self.name + ", " +  str(self.phone)
In [13]:
p1 = Contact("Maria Albertina", 963555555)
p2 = Contact("Maria Albertina", 963555555)

print("Are they equal? ", p1 == p2)
print(p1)
Are they equal?  True
Maria Albertina, 963555555
In [ ]: