attrs

Utilities

Clase sin texto estándar

Descripción general attrs

attrs (importado como attr) es un paquete de Python que le permite escribir clases de Python correctas y concisas sin texto repetitivo. Genera automáticamente __init__, __repr__, __eq__ y otros métodos dunder y, además, admite validadores, convertidores, ranuras y clases congeladas (inmutables).

attrs es una opción popular para definir clases limpias que contienen datos en Python e inspiró directamente el módulo de clases de datos integrado de Python. EnPyRun, los atributos se cargan instantáneamente a través de micropip, lo que la convierte en una excelente biblioteca para explorar al aprender sobre patrones de diseño de clases.

Código y salida de ejecución

Limpiar clases de Python con validadores de atributos.

Attrs Data ClassesEjecutar en el editor
import attr

@attr.s(auto_attribs=True)
class Point:
    x: float
    y: float

    def distance_to(self, other: "Point") -> float:
        return ((self.x - other.x)**2 + (self.y - other.y)**2)**0.5

@attr.s(auto_attribs=True)
class Polygon:
    name: str
    vertices: list = attr.Factory(list)

    def perimeter(self) -> float:
        pts = self.vertices + [self.vertices[0]]
        return sum(pts[i].distance_to(pts[i+1]) for i in range(len(pts)-1))

triangle = Polygon("Triangle", [
    Point(0, 0), Point(4, 0), Point(0, 3)
])

print(repr(triangle))
print(f"Perimeter: {triangle.perimeter():.4f}")
print(f"Expected : 12.0000  (3-4-5 right triangle)")

Paquetes relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.