"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > طرق المثيل مقابل أساليب الفصل في بايثون: متى يجب عليك استخدام \"self\" و \"cls\"؟

طرق المثيل مقابل أساليب الفصل في بايثون: متى يجب عليك استخدام \"self\" و \"cls\"؟

تم النشر بتاريخ 2024-11-08
تصفح:354

  Instance vs. Class Methods in Python: When Should You Use \

الغوص في الفروق الدقيقة بين أساليب الفصل والمثيل: ما وراء الذات مقابل Cls

يقترح اقتراح تحسين بايثون (PEP) 8 الاستخدام "self" كالوسيطة الأولى في أساليب المثيل و"cls" كالوسيطة الأولى في أساليب الفصل. ينبع هذا التمييز من الأدوار المختلفة التي تلعبها هذه الأساليب في العمل مع المثيلات والفئات.

طرق المثيل: الميزة الذاتية

يتم استدعاء أساليب المثيل في مثيلات فصل. تتفاعل عادةً مع سمات وسلوكيات محددة لتلك الحالة المعينة. المعلمة الأولى لهذه الأساليب هي self، والتي تمثل المثيل الذي يتم استدعاء الطريقة عليه.

على سبيل المثال، تحدد الفئة التالية طريقة مثيل "إدخال":

class Inst:
    def __init__(self, name):
        self.name = name

    def introduce(self):
        print("Hello, I am %s, and my name is %s" % (self, self.name))

عندما نقوم بإنشاء مثيل لفئة Inst ونستدعي طريقة "introduce" الخاصة بها، فإن يتم تمرير المثيل نفسه كمعلمة ذاتية، مما يسمح لنا بالوصول إلى سماته (في هذه الحالة، سمة "الاسم").

طرق الفصل: احتضان Cls

من ناحية أخرى، تعمل أساليب الفصل على الفصل نفسه وليس على الحالات الفردية. إنها تسمح لنا بتعديل أو فحص بنية الفصل أو سلوكه. المعلمة الأولى لهذه الطرق هي cls، والتي تمثل الفئة التي يتم استدعاء الطريقة عليها.

يوضح المثال التالي طريقة فئة:

class Cls:
    @classmethod
    def introduce(cls):
        print("Hello, I am %s!" % cls)

لا تتطلب هذه الطريقة مثيلًا لأنها لا تتفاعل مع سمات كائن محددة. بدلا من ذلك، فإنه يعمل على الفئة نفسها، وتوفير معلومات حول بنيتها.

تعتبر أساليب الفئة مفيدة بشكل خاص عند الوراثة من فئة الأصل، لأنها تسمح للفئة الفرعية بتعديل أو توسيع سلوك الفئة الأصل. على سبيل المثال، تتجاوز الفئة الفرعية التالية طريقة "إدخال" فئة Cls:

class SubCls(Cls):
    pass

SubCls.introduce()
# outputs: Hello, I am 

باستخدام "cls" كمعلمة أولى، يمكن استدعاء الأسلوب "introduce" مباشرةً على الفئة الفرعية، مما يسمح لها بتحديد سلوكها الخاص أثناء لا يزال الوصول إلى الخصائص الموروثة من الفئة الأصل.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3