attrs

Utilities

クラス定型文なし

概要 attrs

attrs (attr としてインポート) は、ボイラープレートなしで簡潔で正しい Python クラスを作成できる Python パッケージです。 __init__、__repr__、__eq__、その他のダンダー メソッドを自動的に生成し、さらにバリデーター、コンバーター、スロット、および凍結された (不変) クラスをサポートします。

attrs は、Python でクリーンなデータ保持クラスを定義するための一般的な選択肢であり、Python の組み込みデータクラス モジュールに直接影響を与えました。PyRunでは、attrs はマイクロピップ経由で即座にロードされるため、クラス設計パターンについて学習する際に探索するのに最適なライブラリになります。

コードと実行の出力

attrs バリデーターを使用してクリーンな Python クラスを作成します。

Attrs Data Classesエディターで実行
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)")

関連パッケージ

推奨される Python リソース

関連するインタラクティブなチュートリアル、チートシート、コード比較で知識を深めてください。