Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

المزخرف Class Method

جزء من قسم Object Oriented Programming في رحلة Python على Coddy — الدرس 12 من 64.

يقوم المزخرف @classmethod بإنشاء دوال تستقبل الفئة نفسها كمعامل أول (cls) بدلاً من كائن (self).

إليك مثال على فئة (class) تحتوي على دوال فئة (class methods):

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

استدعِ دوال الفئة (class methods) باستخدام اسم الفئة:

info = Student.get_school_info()
print(info)

أنشئ بعض الطلاب:

alice = Student("Alice")
bob = Student("Bob")

updated_info = Student.get_school_info()
print(updated_info)

استخدم دوال الفئة (class methods) كمنشئات بديلة:

guest = Student.create_guest_student()
print(guest.name)
print(Student.get_school_info())

المخرجات:

School: Python Academy, Students: 0
School: Python Academy, Students: 2
Guest
School: Python Academy, Students: 3

يمكن أيضًا استدعاء دوال الفئة (Class methods) من خلال المثيلات (instances):

alice = Student("Alice")
info_from_instance = alice.get_school_info()
print(info_from_instance)

المخرجات:

School: Python Academy, Students: 1

نقطة رئيسية: استخدم @classmethod عندما تحتاج إلى الوصول إلى سمات الفئة (class attributes) أو إنشاء طرق بديلة لإنشاء الكائنات. المعامل الأول هو cls (الفئة نفسها)، وليس self.

ورقة مرجعية

يقوم المزخرف @classmethod بإنشاء دوال تستقبل الفئة نفسها كمعامل أول (cls) بدلاً من النسخة (self).

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

استدعِ دوال الفئة باستخدام اسم الفئة:

info = Student.get_school_info()
guest = Student.create_guest_student()

يمكن أيضاً استدعاء دوال الفئة من النسخ:

alice = Student("Alice")
info_from_instance = alice.get_school_info()

استخدم @classmethod عندما تحتاج إلى الوصول إلى سمات الفئة أو إنشاء طرق بديلة لإنشاء الكائنات.

جرّب بنفسك

لا يتضمّن هذا الدرس تحدّيًا برمجيًا.

quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Object Oriented Programming