attrs

Utilities

Kelas bebas boilerplate

Ikhtisar attrs

attrs (diimpor sebagai attr) adalah paket Python yang memungkinkan Anda menulis kelas Python yang ringkas dan benar tanpa boilerplate. Ini secara otomatis menghasilkan __init__, __repr__, __eq__, dan metode dunder lainnya, dan juga mendukung validator, konverter, slot, dan kelas yang dibekukan (tidak dapat diubah).

attrs adalah pilihan populer untuk mendefinisikan kelas penyimpanan data yang bersih dengan Python, dan ini secara langsung menginspirasi modul dataclasses bawaan Python. DiPyRun, attr dimuat secara instan melalui micropip, menjadikannya perpustakaan yang bagus untuk dijelajahi saat mempelajari pola desain kelas.

Kode & Output Eksekusi

Bersihkan kelas Python dengan validator attrs.

Attrs Data ClassesJalankan di 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)")

Paket Terkait

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.