staticmethod() مُزيّن الدالة الساكنة
آخر تحديث: 2026-09-22
staticmethod() مُزيّن الدالة الساكنة
@staticmethod يعلّم الدالة كدالة ساكنة: لا يستقبل self أو cls.
| التصنيف | الدوال المدمجة |
|---|---|
| النوع | دالة مدمجة |
| إصدار بايثون | all |
📝 الصياغة
@staticmethod
def func(...):
⚙️ المعاملات
| func مطلوب | The function (callable) to wrap as a static method. |
|---|
القيمة المُعادة:A static method descriptor; called without self or cls.
▶ مثال
عدّل الكود واضغط تشغيل لرؤية النتيجة في لوحة المخرجات:
المخرجات:
7
🏷️ دوال مدمجة ذات صلة
💡 حالات ذات صلة
المزيد من الحالات قادم قريباً — تابعونا.
❓ أسئلة شائعة
Qما الفرق بين staticmethod و classmethod؟
Aلا يستقبل staticmethod أي وسيطة خاصة ويتصرف تمامًا كدالة عادية؛ بينما يستقبل classmethod كوسيطته الأولى cls (الصنف نفسه) ويمكنه الوصول إلى خصائص الصنف.
Qهل يمكن لمثيل استدعاء أسلوب ثابت؟
Aنعم — كلاهما C().add(1, 2) و C.add(1, 2) يعملان بوسيطات متطابقة، دون تمرير self تلقائيًا كما في أساليب المثيل.
Qلماذا لا أستخدم دالة على مستوى وحدة بدل staticmethod؟
Aجمْع الدوال المساعدة المتعلقة بمنطق الصنف داخل نطاق اسم الصنف ينظّم الكود أكثر، ويمكن وراثتها وتجاوزها في الأصناف الفرعية.
Qهل تختلف دالة @staticmethod عن دالة عادية في السلوك؟
Aلا منطقيًا، فقط في «الانتماء»: الأسلوب الثابت يُستدعى عبر الصنف ويرتبط بمنطقه، بينما تعيش الدالة العادية في نطاق الوحدة.