صنف علوي
الصنف العلوي (بالإنجليزية: metaclass) أو الصنف ذاتي الوصف في البرمجة الكائنية، هو صنف تكون مثيلاته أصناف. تمامًا كما يحدد الصنف العادي سلوك كائنات معينة، يحدد الصنف العلوي سلوك أصناف معينة ومثيلاتها. لا تدعم جميع لغات البرمجة الكائنية الأصناف العلوية. من بين تلك اللغات التي تستخدم الصنف العلوي، يختلف مدى التجاوز الصنف العلوي لأي جانب معين من جوانب سلوك الأصناف. يمكن تنفيذ الصنف العلوي من خلال جعل الطبقات مواطنين من الدرجة الأولى، وفي هذه الحالة يكون الصنف العلوي ببساطة كائنًا يبني الأصناف. كل لغة لها بروتوكول كائن علوي خاص بها، ومجموعة من القواعد التي تحكم كيفية تفاعل الكائنات والأصناف و الأصناف العلوية.[1]
مثال بايثون
في بايثون، الصنف المضمنtype
هو صنف علوي.[2][3][4] على سبيل المثال هذا الصنف البسيط:
class Car:
def __init__(self, make: str, model: str, year: int, color: str) -> None:
self.make = make
self.model = model
self.year = year
self.color = color
@property
def description(self):
"""Return a description of this car."""
return f"{self.color} {self.year} {self.make} {self.model}"
انظر أيضًا
المراجع
- Ira R. Forman and Scott Danforth (1999)، Putting Metaclasses to Work، ISBN 0-201-43305-2.
- IBM Metaclass programming in Python, parts 1 نسخة محفوظة 2008-09-03 على موقع واي باك مشين., 2 and 3
- Artima Forum: Metaclasses in Python 3.0 (part 1 of 2) (part 2 of 2) نسخة محفوظة 2016-04-09 على موقع واي باك مشين.
- David Mertz، "A Primer on Python Metaclass Programming"، ONLamp، مؤرشف من الأصل في 30 أبريل 2003، اطلع عليه بتاريخ 28 يونيو 2006.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.