صنف علوي

الصنف العلوي  أو الصنف ذاتي الوصف في البرمجة الكائنية، هو صنف تكون مثيلاته أصناف. تمامًا كما يحدد الصنف العادي سلوك كائنات معينة، يحدد الصنف العلوي سلوك أصناف معينة ومثيلاتها. لا تدعم جميع لغات البرمجة الكائنية الأصناف العلوية. من بين تلك اللغات التي تستخدم الصنف العلوي، يختلف مدى التجاوز الصنف العلوي لأي جانب معين من جوانب سلوك الأصناف. يمكن تنفيذ الصنف العلوي من خلال جعل الطبقات مواطنين من الدرجة الأولى، وفي هذه الحالة يكون الصنف العلوي ببساطة كائنًا يبني الأصناف. كل لغة لها بروتوكول كائن علوي خاص بها، ومجموعة من القواعد التي تحكم كيفية تفاعل الكائنات والأصناف و الأصناف العلوية.

مثال بايثون 
في بايثون، الصنف المضمنtype هو صنف علوي. على سبيل المثال هذا الصنف البسيط: 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}"

انظر أيضًا 
 البرمجة التخطيطية
 الكائن الوصفي (برمجة)
 نمط المحول

المراجع

روابط خارجية 
 ما هو Metaclass؟

صنف (حوسبة)