attrs

Utilities

Kurs ohne Textbausteine

Übersicht attrs

attrs (importiert als attr) ist ein Python-Paket, mit dem Sie prägnante, korrekte Python-Klassen ohne Boilerplate schreiben können. Es generiert automatisch __init__, __repr__, __eq__ und andere Dunder-Methoden und unterstützt zusätzlich Validatoren, Konverter, Slots und eingefrorene (unveränderliche) Klassen.

attrs ist eine beliebte Wahl zum Definieren sauberer datenhaltender Klassen in Python und hat direkt das in Python integrierte Datenklassenmodul inspiriert. InPyRunwerden Attrs sofort über Micropip geladen, was es zu einer großartigen Bibliothek macht, die Sie erkunden können, wenn Sie etwas über Klassenentwurfsmuster lernen.

Code- und Ausführungsausgabe

Bereinigen Sie Python-Klassen mit Attrs-Validatoren.

Attrs Data ClassesIm Editor ausführen
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)")

Verwandte Pakete

Empfohlene Python-Ressourcen

Erweitern Sie Ihr Wissen mit zugehörigen interaktiven Tutorials, Spickzetteln und Codevergleichen.