دوال الفئة والدوال الساكنة
بجانب دوال الكائن العادية، يمكن أن تحتوي الفئات على نوعين آخرين من الدوال يغيران كيفية التعامل مع self.
1. دوال الفئة (@classmethod)
- تُزخرف بـ
@classmethod. - تأخذ
clsكأول وسيط لها، مشيرة إلى الفئة نفسها، وليس الكائن. - تُستخدم كطرق بديلة لإنشاء الكائنات (factory methods) أو للتعامل مع خصائص على مستوى الفئة.
python class Settings: DEFAULT_THEME = 'dark'
@classmethod
def get_default_theme(cls):
# cls تشير إلى فئة Settings
return cls.DEFAULT_THEME
الوصول عبر الفئة مباشرة وليس الكائن
print(Settings.get_default_theme()) # المخرجات: dark
2. الدوال الساكنة (@staticmethod)
- تُزخرف بـ
@staticmethod. - لا تتطلب وسيط
selfأوcls. - هي دوال مساعدة مُجمعة داخل الفئة لأنها تنتمي منطقياً إليها، لكنها لا تتفاعل مع خصائص الفئة أو خصائص الكائن.
python class MathUtility: @staticmethod def add_numbers(a, b): return a + b
استدعاؤها مباشرة باسم الفئة
print(MathUtility.add_numbers(10, 5)) # المخرجات: 15