7.5. Classes e objetos em Python: Métodos especiais

Página 41

7.5 Classes e Objetos em Python: Métodos Especiais

Na linguagem Python, tudo é um objeto, incluindo os tipos de dados primitivos. As classes fornecem uma maneira de empacotar dados e funcionalidade juntos. Ao criar uma nova classe, criamos um novo tipo de objeto, permitindo que novas instâncias desse tipo sejam feitas. Cada instância de classe pode ter atributos anexados a ela para manter seu estado. As instâncias de classe também podem ter métodos (definidos pela sua classe) para modificar seu estado.

Os métodos especiais são um recurso chave do Python, permitindo que você crie classes que se comportem como tipos de dados embutidos. Isso significa que você pode usar métodos especiais para sobrecarregar operadores padrão e funções para que eles trabalhem com suas classes personalizadas. Esses métodos especiais são sempre cercados por duplos sublinhados (__) e são conhecidos como "dunder methods".

__init__ Método

O método __init__ é um método especial que é chamado automaticamente quando um objeto é criado a partir de uma classe. Este método é tipicamente usado para realizar qualquer inicialização necessária. Aqui está um exemplo:

class MyClass:
  def __init__(self):
    self.data = []

Neste exemplo, o método __init__ é usado para inicializar o atributo de dados para cada nova instância da classe MyClass.

__str__ e __repr__ Métodos

Os métodos __str__ e __repr__ são usados para fornecer representações de string de um objeto. O método __str__ é chamado pela função str(obj) e pela função print para converter o objeto em uma string. O método __repr__ é usado para fornecer uma representação de string que pode ser usada para recriar o objeto usando a função eval().

class MyClass:
  def __init__(self, name):
    self.name = name

  def __str__(self):
    return f'MyClass({self.name})'

  def __repr__(self):
    return f'MyClass({self.name})'

__eq__ e __ne__ Métodos

Os métodos __eq__ e __ne__ são usados para sobrecarregar os operadores de igualdade e desigualdade. O método __eq__ é chamado quando dois objetos são comparados usando o operador de igualdade (==). O método __ne__ é chamado quando o operador de desigualdade (!=) é usado.

class MyClass:
  def __init__(self, name):
    self.name = name

  def __eq__(self, other):
    if isinstance(other, MyClass):
      return self.name == other.name
    return False

  def __ne__(self, other):
    return not self.__eq__(other)

Métodos de Operadores Aritméticos

Existem vários métodos especiais que podem ser usados para sobrecarregar operadores aritméticos, incluindo __add__, __sub__, __mul__, __truediv__, e muitos outros. Cada um desses métodos é chamado quando o operador correspondente é usado em objetos da classe.

Por exemplo, aqui está como você poderia sobrecarregar o operador de adição para uma classe que representa um vetor matemático:

class Vector:
  def __init__(self, x, y):
    self.x = x
    self.y = y

  def __add__(self, other):
    if isinstance(other, Vector):
      return Vector(self.x + other.x, self.y + other.y)
    else:
      raise TypeError('Vectors can only be added to other vectors.')

Essa é apenas uma introdução aos métodos especiais em Python. Existem muitos outros métodos especiais disponíveis que permitem que você personalize o comportamento de suas classes de maneiras poderosas e flexíveis.

Ahora responde el ejercicio sobre el contenido:

_Qual dos seguintes métodos especiais é chamado automaticamente quando um objeto é criado a partir de uma classe em Python?

¡Tienes razón! Felicitaciones, ahora pasa a la página siguiente.

¡Tú error! Inténtalo de nuevo.

Siguiente página del libro electrónico gratuito:

427.6. Classes e objetos em Python: Construtores e destrutores

¡Obtén tu certificado para este curso gratis! descargando la aplicación Cursa y leyendo el libro electrónico allí. ¡Disponible en Google Play o App Store!

Disponible en Google Play Disponible en App Store

+ 6,5 millones
estudiantes

Certificado gratuito y
válido con código QR

48 mil ejercicios
gratis

Calificación de 4.8/5
en tiendas de aplicaciones

Cursos gratuitos de
vídeo, audio y texto.