Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Metaclass trong Python là gì?

Metaclass là class có instance là các class. Giống như class thông thường định nghĩa hành vi của instance, metaclass định nghĩa hành vi của class và instance của chúng.

Python hỗ trợ metaclass. Một số lập trình viên coi metaclass là "giải pháp đang chờ vấn đề".

Ứng dụng phổ biến

  • Logging và profiling tự động
  • Kiểm tra interface (interface checking)
  • Đăng ký class khi tạo (registry pattern)
  • Tự động thêm method mới
  • Tự động tạo property
  • Proxy, ORM, validation framework

Ví dụ đơn giản

class Meta(type):
    def __new__(mcs, name, bases, namespace):
        print(f"Creating class: {name}")
        return super().__new__(mcs, name, bases, namespace)

class MyClass(metaclass=Meta):
    pass

# Output: Creating class: MyClass

Lưu ý: Metaclass là chủ đề nâng cao. Hầu hết ứng dụng không cần. Ưu tiên composition, decorator, class decorator trước.