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

المزخرف 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.

جرّب بنفسك

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

quiz iconاختبر نفسك

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

جميع دروس Object Oriented Programming