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)