2010-01-05 28 views
17

Tôi nhận thấy rằng trong các mô hình Django, có một class Meta mà làm cho một số định nghĩa bổ sung về mô hình.Tại sao Django's Meta lại là một lớp học kiểu cũ?

Câu hỏi của tôi là, tại sao điều này được thực hiện như một lớp kiểu cũ? (tức là không phân lớp object?) Có lý do nào cho việc này hay đây chỉ là một tùy chỉnh không? Tôi có thể làm điều đó như một lớp học theo phong cách mới trong các dự án của tôi không?

Trả lời

15

Tôi tin rằng không có lý do thực sự (kể cả lịch sử, vì các lớp kiểu mới tồn tại kể từ Python 2.2) và không chỉ bạn có thể chọn sử dụng lớp kiểu mới thay vào đó, mà nó có thể là tốt ý tưởng cho bạn làm như vậy (vì tất cả các lý do thông thường).

8

Vì lớp Meta không bao giờ là gì ngoài một vùng chứa không gian tên đơn giản, không có lợi thế nào cho đối tượng lớp con; chỉ cần thêm tám ký tự để nhập. Sẽ không làm tổn thương bất cứ điều gì để làm như vậy nếu bạn cảm thấy thích nó, mặc dù.

Các vấn đề liên quan