Sobes.tech
Junior

O que são métodos mágicos?

sobes.tech IA

Resposta da IA

Métodos mágicos (também conhecidos como métodos "mágicos" ou "especiais") são métodos em classes Python cujos nomes começam e terminam com dois underscores (por exemplo, __init__, __str__). Eles são usados para implementar protocolos ou sobrescrever o comportamento de operadores e funções embutidas.

Exemplos de uso:

  • Inicialização de objetos (__init__)
  • Representação do objeto como string (__str__, __repr__)
  • Sobrecarga de operadores (__add__ para soma, __mul__ para multiplicação)
  • Gerenciamento de contexto (usando with) (__enter__, __exit__)
  • Criação de iteradores (__iter__, __next__)
  • Trabalho com atributos (__getattr__, __setattr__)

O uso de métodos mágicos permite que as classes interajam com o mecanismo da linguagem Python em um nível mais baixo, tornando objetos personalizados consistentes com os tipos de dados embutidos.

# Exemplo de uso de __init__ e __str__
class MyClass:
    def __init__(self, value):
        self.value = value # Inicialização do objeto

    def __str__(self):
        return f"Objeto com valor: {self.value}" # Representação em string do objeto

obj = MyClass(10)
print(obj) # Chama __str__
# Exemplo de uso de __add__ (sobrecarga do operador de soma)
class Vector:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __add__(self, other):
        # Sobrecarga do operador +
        return Vector(self.x + other.x, self.y + other.y)

    def __str__(self):
        return f"Vector({self.x}, {self.y})"

v1 = Vector(1, 2)
v2 = Vector(3, 4)
v3 = v1 + v2 # Chama __add__
print(v3)