• 0

هل ينصح باستخدام @property في البايثون ؟

هذا مثال لشيفرة برمجية لصنف مكتوب بالبايثون:

class MyClass(object):
    ...
    def get_my_attr(self):
        ...

    def set_my_attr(self, value):
        ...

وهذا نفس المثال لكن باستخدام @property:

class MyClass(object):
    ...        
    @property
    def my_attr(self):
        ...

    @my_attr.setter
    def my_attr(self, value):
        ...

كما ترون فإن البايثون تسمح لنا باستخدام الطريقتين فأي الطريقتين أفضل ولماذا ؟

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة
  • 0

أنصحك باستخدام الخصائص (properties)، لأن جميع السمات (attributes) عامة في البايثون، لذلك إذا قمت بإضافة خط سفلي (_) إلى الأسماء  فهو سيبقى مجرد تفصيل محدد لتلك السمة والتي قد لا تبقى نفسها في الإصدارات التالية من الشيفرة البرمجية، وهو لا يمنعك من الحصول على معلومات (getting) أو تعيين (setting) لتلك السمة، ولذلك فإن سمات الوصول القياسية (standard attribute access) هي الطريقة العادية (في البايثون) للوصول إلى السمات (أقصد طريقة المثال الثاني).
ومن المميزات الأخرى للخصائص أنها متطابقة صياغيا مع سمات الوصول، لذلك يمكنك تغييرها دون أن تقوم بأي تعديلات على الشيفرة البرمجية للعميل.

المصدر

انشر على الشّبكات الاجتماعية


رابط هذه المساهمة

يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن