attrs

Utilities

Lớp không có bản soạn sẵn

Tổng quan attrs

attrs (được nhập dưới dạng attr) là một gói Python cho phép bạn viết các lớp Python chính xác, ngắn gọn mà không cần bản soạn sẵn. Nó tự động tạo __init__, __repr__, __eq__ và các phương thức ngu ngốc khác, đồng thời hỗ trợ thêm các trình xác nhận, trình chuyển đổi, vị trí và các lớp cố định (không thay đổi).

attrs là một lựa chọn phổ biến để xác định các lớp lưu trữ dữ liệu sạch trong Python và nó trực tiếp truyền cảm hứng cho mô-đun lớp dữ liệu tích hợp của Python. TrongPyRun, attrs tải ngay lập tức qua micropip, khiến nơi đây trở thành thư viện tuyệt vời để khám phá khi tìm hiểu về các mẫu thiết kế lớp học.

Đầu ra mã & thực thi

Làm sạch các lớp Python bằng trình xác nhận attrs.

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)")

Gói liên quan

Tài nguyên Python được đề xuất

Mở rộng kiến thức của bạn với các hướng dẫn tương tác, bảng ghi chú và so sánh mã có liên quan.