Apakah Metaclasses?
Dalam Python, kelas ialah objek yang boleh mencipta kejadian, dikenali sebagai instance. Metaclasses ialah "bahan" yang mencipta kelas, serupa dengan kilang kelas. Apabila anda menggunakan kata kunci class, Python menggunakan metaclass untuk mencipta objek kelas. Metaclass lalai dalam Python ialah type.
Atribut metaclass
Dalam Python 2, anda boleh menentukan metaclass untuk kelas menggunakan atribut metaclass. Dalam Python 3, ini telah digantikan dengan argumen kata kunci metaclass dalam definisi kelas:
class Foo(object, metaclass=MyMetaclass): ...
Metaclasses Tersuai
Metaclasses membenarkan anda untuk menyesuaikan gelagat kelas semasa penciptaannya dengan memintas, mengubah suai dan mengembalikan kelas yang diubah suai. Ini berguna untuk kes penggunaan tertentu, seperti mengubah suai nama atribut, menjana getter dan setter secara automatik atau mencipta kelas berdasarkan kriteria dinamik.
Menggunakan Metaclasses lwn. Fungsi
Metaclasses boleh ditakrifkan sebagai fungsi atau kelas. Fungsi lebih mudah, tetapi kelas menawarkan kelebihan seperti warisan, organisasi kod yang lebih baik dan niat yang lebih jelas.
Sebab Penggunaan Metaclass
Metaclass paling biasa digunakan untuk mencipta API yang memudahkan penciptaan kelas kompleks. Contohnya, ORM Django menggunakan metaclass untuk menukar definisi kelas mudah kepada cangkuk medan pangkalan data.
Points to Remember
Atas ialah kandungan terperinci Apakah Metaclasses dan Bagaimana Mereka Menyesuaikan Penciptaan Kelas dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!