Gần đây tôi đã phát hiện thấy metaclasses trong python.Có ai sử dụng meta-meta-classes/meta-meta-meta-classes bằng Python/các ngôn ngữ khác không?
Về cơ bản một metaclass trong python là một lớp tạo ra một lớp. Có nhiều lý do hữu ích tại sao bạn muốn làm điều này - bất kỳ kiểu khởi tạo lớp nào chẳng hạn. Đăng ký các lớp học trên các nhà máy, xác nhận các thuộc tính phức tạp, thay đổi cách thức hoạt động của thừa kế, vv Tất cả điều này trở thành không chỉ có thể nhưng đơn giản.
Nhưng trong trăn, metaclasses cũng là lớp đồng bằng. Vì vậy, tôi bắt đầu tự hỏi liệu trừu tượng có thể hữu ích đi cao hơn không, và có vẻ như với tôi rằng nó có thể và:
- metaclass tương ứng hoặc thực hiện vai trò (như trong ngôn ngữ mẫu GOF).
- một meta-metaclass là mô hình riêng của mình (nếu chúng ta cho phép nó để tạo ra các bộ của các tầng lớp đại diện cho vai trò trừu tượng, chứ không phải chỉ là một lớp duy nhất)
- một meta-meta-metaclass là một nhà máy mẫu, tương ứng đối với các nhóm mẫu GOF, ví dụ Creational, Structural, Behavioral. Một nhà máy nơi bạn có thể mô tả một trường hợp của một loại vấn đề nhất định và nó sẽ cung cấp cho bạn một bộ các lớp học đã giải quyết nó.
- siêu meta meta meta meta (theo như tôi có thể đi), là nhà máy sản xuất mẫu , một nhà máy mà bạn có thể mô tả loại vấn đề của mình và nó sẽ mang đến cho bạn hỏi.
Tôi đã tìm thấy một số nội dung về trực tuyến này, nhưng hầu hết không hữu ích. Một vấn đề là các ngôn ngữ khác nhau xác định metaclasses hơi khác nhau.
Có ai khác sử dụng metaclasses như thế này trong python/ở nơi khác, hoặc nhìn thấy điều này được sử dụng trong tự nhiên, hoặc nghĩ về nó? Các chất tương tự trong các ngôn ngữ khác là gì? Ví dụ. trong C++ làm thế nào sâu đệ quy mẫu có thể đi?
Tôi rất muốn nghiên cứu thêm.
Cập nhật: một thời gian dài đã trôi qua. Tôi đã sử dụng metaclasses rất nhiều và tôi đoán chúng rất hữu ích, nhưng sau đó tôi đã hoàn thành metaclasses. Lý do là sau khi nhìn vào tương tác ngữ cảnh miền, và một số nghiên cứu của IBM, tôi nhận ra rằng khái niệm về kiểu nội tại đối với một đối tượng là chính nó thiếu sót. Thay vào đó, loại phụ thuộc vào 'có yêu cầu'. Với một con chim, một cái cây chỉ là một nơi để xây tổ. Với một người ghi chép, một nguồn thu nhập, cho một người đánh giá thuế, có lẽ một cái gì đó khác. –