attrs

Utilities

Classe sans passe-partout

Aperçu attrs

attrs (importé en tant qu'attr) est un package Python qui vous permet d'écrire des classes Python concises et correctes sans passe-partout. Il génère automatiquement __init__, __repr__, __eq__ et d'autres méthodes dunder, et prend en outre en charge les validateurs, les convertisseurs, les emplacements et les classes gelées (immuables).

attrs est un choix populaire pour définir des classes de stockage de données propres en Python, et il a directement inspiré le module dataclasses intégré de Python. DansPyRun, les attrs se chargent instantanément via micropip, ce qui en fait une excellente bibliothèque à explorer lors de l'apprentissage des modèles de conception de classe.

Sortie de code et d'exécution

Nettoyez les classes Python avec des validateurs d'attrs.

Attrs Data ClassesExécuter dans l'éditeur
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)")

Forfaits associés

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.