attrs
UtilitiesKlasa bez szablonów
Przegląd attrs
attrs (importowany jako attr) to pakiet Pythona, który umożliwia pisanie zwięzłych, poprawnych klas Pythona bez szablonów. Automatycznie generuje __init__, __repr__, __eq__ i inne metody dunder, a dodatkowo obsługuje walidatory, konwertery, sloty i zamrożone (niezmienne) klasy.
attrs to popularny wybór do definiowania czystych klas przechowujących dane w Pythonie i bezpośrednio zainspirował wbudowany moduł klas danych Pythona. WPyRunattrs ładuje się natychmiast za pomocą micropipa, co czyni ją świetną biblioteką do eksploracji podczas poznawania wzorców projektowania klas.
Dane wyjściowe kodu i wykonania
Wyczyść klasy Pythona za pomocą walidatorów atrybutów.
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)")Powiązane pakiety
Polecane zasoby Pythona
Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.
Pętle Pythona
Dowiedz się, jak używać pętli Pythona do iteracji danych. Opanuj pętle for, pętle while, przerywaj, kontynuuj i pętluj najlepsze praktyki dzięki interaktywnym przykładom.
Jak sortować listę w Pythonie
Dowiedz się, jak sortować listę w Pythonie za pomocą metody sort() i funkcji sorted(). Odkryj przykłady niestandardowego sortowania kluczy i odwrotnej kolejności.
Ściągawka dotycząca metod ciągów w Pythonie
Kompletny przewodnik dotyczący manipulacji ciągami znaków w języku Python. Opanuj formatowanie, wyszukiwanie, dzielenie, zastępowanie i sprawdzanie właściwości ciągów.
Python kontra JavaScript: który język programowania jest najlepszy?
Kompleksowe porównanie Pythona i JavaScript. Poznaj różnice w składni, wydajność, przypadki użycia (backend vs frontend) i przykłady kodowania.