attrs
Utilities無類樣板
概述 attrs
attrs(以 attr 導入)是一個 Python 包,可讓您編寫簡潔、正確的 Python 類,而無需樣板。它會自動產生 __init__、__repr__、__eq__ 和其他 dunder 方法,並且還支援驗證器、轉換器、插槽和凍結(不可變)類別。
attrs 是 Python 中定義乾淨的資料保存類別的熱門選擇,它直接啟發了 Python 的內建 dataclasses 模組。在PyRun中,attrs 透過 micropip 立即加載,使其成為學習類別設計模式時值得探索的絕佳庫。
程式碼和執行輸出
使用 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 資源
透過相關的互動式教學、備忘單和程式碼比較來擴展您的知識。
Python教學
Python 迴圈:For 與 While 迴圈解釋
了解如何使用 Python 循環來迭代資料。透過互動式範例掌握 for 迴圈、while 迴圈、break、continue 和迴圈最佳實務。
查看資源
操作指南
如何在 Python 中對列表進行排序(升序和降序)
了解如何在 Python 中使用 sort() 方法和sorted() 函數對清單進行排序。發現自訂鍵排序和逆序範例。
查看資源
備忘錄
Python 字串方法備忘單
Python 字串操作的完整參考指南。掌握格式化、搜尋、拆分、取代和檢查字串屬性。
查看資源
語言比較
Python 與 JavaScript:哪種程式語言最好?
Python 和 JavaScript 的全面比較。探索語法差異、效能、用例(後端與前端)和編碼範例。
查看資源