فهم طرق الفئات في بايثون
تعتبر طرق الفئات في لغة البرمجة بايثون جزءاً مهماً من البرمجة الكائنية التوجه حيث تتيح للمبرمجين العمل مباشرة مع الفئة نفسها بدلاً من كائنات محددة منها. يتم تعريف طرق الفئة باستخدام الديكوريتور @classmethod، ويكون أول وسيط لهذه الطرق هو cls الذي يشير إلى الفئة نفسها وليس إلى كائن معين. هذا يعني أنه يمكننا استخدام طرق الفئة لإنشاء أو تعديل بيانات مشتركة بين جميع الكائنات التابعة لتلك الفئة.
طرق الفئة مفيدة في العديد من الحالات، مثل عندما نريد توفير طريقة بديلة لإنشاء الكائنات (ما يعرف بالمصانع) أو عندما نحتاج للوصول أو تعديل متغيرات الفئة. على سبيل المثال، إذا كانت لدينا فئة تمثل موظفين ويمكننا استخدام طريقة فئة لإجراء عمليات حسابية تستند إلى بيانات مشتركة مثل عدد الموظفين الإجمالي.
أمثلة على استخدام طرق الفئات في بايثون
لنقم بالنظر إلى بعض الأمثلة لتوضيح كيفية استخدام طرق الفئات في بايثون. في المثال الأول، لنفترض أن لدينا فئة تمثل سيارة، ونريد طريقة لإنشاء سيارة من سلسلة نصية تحتوي على معلومات السيارة.
class Car:
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
@classmethod
def from_string(cls, car_string):
make, model, year = car_string.split('-')
return cls(make, model, int(year))
car_info = "Toyota-Corolla-2020"
car = Car.from_string(car_info)
print(car.make) # Toyota
print(car.model) # Corolla
print(car.year) # 2020
في هذا المثال، قمنا بتعريف طريقة فئة من خلال الديكوريتور @classmethod التي تأخذ سلسلة نصية وتقوم بتحليلها لإنشاء كائن جديد من النوع Car. هذا يوضح كيف يمكن استخدام طرق الفئة لتوفير واجهة مرنة لإنشاء الكائنات.
في مثال آخر، لنستخدم طرق الفئة لاحتساب عدد الكائنات التي تم إنشاؤها من فئة معينة:
class Employee:
employee_count = 0
def __init__(self, name):
self.name = name
Employee.employee_count += 1
@classmethod
def get_employee_count(cls):
return cls.employee_count
emp1 = Employee("John")
emp2 = Employee("Jane")
print(Employee.get_employee_count()) # 2
في هذا المثال، قمنا بتعريف متغير فئة employee_count الذي يحتفظ بعدد الكائنات التي تم إنشاؤها من الفئة Employee. باستخدام طريقة الفئة get_employee_count، يمكننا الوصول إلى هذا المتغير للحصول على عدد الموظفين الحالي. يظهر هذا المثال كيفية استخدام طرق الفئة للوصول إلى بيانات الفئة المشتركة.
