المزخرف Static Method
جزء من قسم Object Oriented Programming في رحلة Python على Coddy — الدرس 11 من 64.
يقوم المزخرف @staticmethod بإنشاء دوال لا تحتاج إلى self أو الفئة. وهي تعمل مثل الدوال العادية ولكنها تنتمي إلى الفئة.
إليك مثال على فئة تحتوي على دوال ثابتة (static methods):
class MathHelper:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def is_even(number):
return number % 2 == 0استدعِ الأساليب الثابتة باستخدام اسم الفئة:
result = MathHelper.add(5, 3)
print(result)
check = MathHelper.is_even(10)
print(check)يمكنك أيضاً استدعاؤها من كائن:
helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)المخرجات:
8
True
6لا تصل الأساليب الثابتة (Static methods) إلى بيانات المثيل (instance) أو الفئة (class):
class Calculator:
brand = "Python Calc"
def __init__(self, owner):
self.owner = owner
@staticmethod
def multiply(x, y):
# لا يمكن الوصول إلى self.owner أو Calculator.brand
return x * yنقطة رئيسية: استخدم @staticmethod عندما تحتاج إلى دالة مرتبطة بالفئة ولكنها لا تحتاج إلى الوصول إلى المثيل (self) أو بيانات الفئة. لا حاجة لمعامل self.
ورقة مرجعية
يقوم المزخرف @staticmethod بإنشاء دوال لا تحتاج إلى self أو الفئة. وهي تعمل مثل الدوال العادية ولكنها تنتمي إلى الفئة.
class MathHelper:
@staticmethod
def add(a, b):
return a + b
@staticmethod
def is_even(number):
return number % 2 == 0استدعِ الدوال الساكنة باستخدام اسم الفئة:
result = MathHelper.add(5, 3)
check = MathHelper.is_even(10)يمكنك أيضاً استدعاؤها من كائن:
helper = MathHelper()
result2 = helper.add(2, 4)لا تصل الدوال الساكنة إلى بيانات الكائن أو الفئة - لا حاجة لمعامل self.
جرّب بنفسك
لا يتضمّن هذا الدرس تحدّيًا برمجيًا.
يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Object Oriented Programming
1أساسيات OOP
الملفات الخارجيةمقدمة في OOPClasses مقابل Objectsمعامل selfMethodsAttributesدالة البناء (__init__)مراجعة - آلة حاسبة بسيطة4الوراثة
الوراثة الأساسيةدالة ()superإعادة تعريف الدوال (Method Overriding)الوراثة المتعددةترتيب استدعاء الدوال (Method Resolution Order)مراجعة - هيكلية الموظفين5تعدد الأشكال
مراجعة إعادة تعريف الدوالمفهوم Duck Typingالأصناف والدوال المجردةتصميم الواجهاتملخص - حاسبة الأشكال