Sobrecarga de operadores en Python
Darle a una clase significado para +, * y repr.
class Vector:
def __init__(self, x, y):
self.x, self.y = x, y
def __add__(self, otro):
return Vector(self.x + otro.x, self.y + otro.y)
def __mul__(self, escala):
return Vector(self.x * escala, self.y * escala)
def __repr__(self):
return f"Vector({self.x}, {self.y})"
v = Vector(1, 2) + Vector(3, 4)
w = v * 10
Cómo funciona
__add__define qué hace+entre vectores.__mul__escala el vector por un número.__repr__le da una forma legible.
Palabras clave y builtins usados aquí
classdefreturnself
El intento, en números
- Líneas
- 16
- Caracteres a escribir
- 314
- Tokens
- 117
- Ritmo de tres estrellas
- 105 tpm
Al ritmo de tres estrellas de 105 tokens por minuto, este intento toma unos 67 segundos.
Paso 4 de 5 en Protocolos y gestores de contexto; paso 18 de 53 en Python pythónico.