"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > شرح أساسيات @property Decorator في بايثون

شرح أساسيات @property Decorator في بايثون

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

The Basics of Python

فهم @property Decorator في بايثون

في لغة Python، يُعد مُزخرف @property ميزة قوية تسمح لك بإدارة سمات الكائن بمزيد من التحكم والأناقة. لفهم @property بشكل كامل، من المفيد فهم مفهوم الحروف والمحددات أولاً. ستشرح مشاركة المدونة هذه هذه المفاهيم وكيف يمكن لـ @property تبسيط التعليمات البرمجية الخاصة بك وتحسينها.

ما هي Getters وSetters؟

في البرمجة الموجهة للكائنات، الحروف والمحددات هي طرق تستخدم للوصول إلى السمات الخاصة للفئة وتعديلها. فهي تساعد في فرض التغليف من خلال التحكم في كيفية الوصول إلى السمات وتحديثها.

  • Getter: طريقة تقوم باسترداد قيمة سمة خاصة. يتم استخدامه لتوفير الوصول للقراءة إلى السمة.

  • Setter: طريقة تقوم بتعيين أو تحديث قيمة سمة خاصة. يتم استخدامه لتوفير حق الوصول للكتابة إلى السمة وغالبًا ما يتضمن التحقق من الصحة.

لماذا نستخدم Getters وSetters؟

  1. التغليف: يسمح لك بإخفاء التمثيل الداخلي للسمة وكشف ما هو ضروري فقط.

  2. التحقق من الصحة : يمكن أن تتضمن أدوات الضبط منطق التحقق لضمان تعيين السمات على قيم صالحة.

  3. سهولة القراءة : يمكنهم جعل التعليمات البرمجية أكثر قابلية للقراءة من خلال توفير واجهة واضحة للوصول إلى السمات وتعديلها.

نقدم لكم @property

يسمح لك مصمم @property في Python بتحديد الأساليب التي يمكن الوصول إليها مثل السمات. وهذا يجعل التعليمات البرمجية الخاصة بك أكثر وضوحًا وبديهية، حيث يمكنك إدارة السمات من خلال استدعاءات الأساليب التي تبدو وكأنها وصول إلى السمات.

إليك كيفية استخدام @property:

  1. تحديد Getter : استخدم @property لإنشاء طريقة تسترد قيمة السمة.

  2. تحديد أداة ضبط: استخدم @.setter لإنشاء طريقة تحدد قيمة السمة.

  3. تحديد أداة الحذف: استخدم @.deleter لإنشاء طريقة تحذف السمة.

مثال

لنقم بإنشاء دائرة صفية تستخدم @property لإدارة نصف قطر الدائرة:

class Circle:
    def __init__(self, radius):
        self._radius = radius

    @property
    def radius(self):
        """Getter method for the radius property."""
        return self._radius

    @radius.setter
    def radius(self, value):
        """Setter method for the radius property."""
        if value 



الاستخدام:

c = Circle(5)
print(c.radius)  # 5

c.radius = 10  # Set new value
print(c.radius)  # 10

del c.radius  # Delete the property

في هذا المثال:

  • يُعرّف مصمم الديكورproperty طريقة نصف القطر على أنها getter.

  • يحدد مصمم الديكور @radius.setter طريقة ضبط للسماح بتعيين قيمة نصف القطر.

  • يحدد مصمم الديكور @radius.deleter طريقة حذف لحذف سمة نصف القطر.

حالات الاستخدام العملي

  1. التحقق من الصحة : استخدم أدوات الضبط للتحقق من صحة البيانات قبل تعيينها. على سبيل المثال، التأكد من أن نصف القطر موجب.

  2. الخصائص المحسوبة : استخدم الحروف لإرجاع القيم المحسوبة بناءً على سمات أخرى. على سبيل المثال، حساب مساحة الدائرة.

  3. التغليف : إخفاء التمثيل الداخلي للسمة أثناء كشف واجهة نظيفة.

مثال على خاصية محسوبة
class Rectangle:
    def __init__(self, width, height):
        self._width = width
        self._height = height

    @property
    def area(self):
        """Compute the area of the rectangle."""
        return self._width * self._height

الاستخدام:

rect = Rectangle(10, 5)
print(rect.area)  # 50

في هذا المثال، المساحة هي خاصية محسوبة تُرجع حاصل ضرب العرض والارتفاع.

أسئلة وأجوبة المقابلة

  1. س: ما هو الغرض من @property Decorator في بايثون؟ ج: يسمح مصمم @property بالوصول إلى الطريقة كسمة. فهو يوفر طريقة لتحديد أساليب getter وsetter وdeleter لإدارة الوصول إلى إحدى السمات.

  2. س: هل يمكنك استخدام أسماء مختلفة لطرق getter وsetter وdeleter؟ ج: لا، أسماء طرق getter وsetter وdeleter يجب أن تكون هي نفسها. وذلك لأنها جميعها تهدف إلى إدارة نفس العقار.

  3. س: ماذا يحدث إذا قمت فقط بتعريف طريقة getter باستخدام @property وليس أداة ضبط أو حذف؟ ج: إذا قمت بتعريف طريقة getter فقط، فستكون الخاصية للقراءة فقط. لن تتمكن من تعيين أو حذف قيمة تلك الخاصية.

  4. س: كيف يؤدي استخدام @property إلى تحسين إمكانية قراءة التعليمات البرمجية؟ ج: يعمل على تحسين إمكانية القراءة من خلال السماح بالوصول إلى الأساليب مثل السمات، مما يجعل التعليمات البرمجية أكثر وضوحًا وأكثر سهولة.

  5. س: لماذا من المهم استخدام نفس الاسم لطرق الخاصية والضبط والحذف؟ ج: استخدام نفس الاسم يضمن أن جميع الطرق المرتبطة بنفس الخاصية. يتيح لك ذلك إدارة الوصول إلى العقار بشكل متسق.

خاتمة

يُعد مُصمم @property ميزة قوية في Python تسمح لك بإدارة السمات بطريقة نظيفة ومنضبطة. باستخدام أساليب getter وsetter وdeleter، يمكنك التأكد من الوصول إلى سماتك وتعديلها وحذفها بطريقة تحافظ على سلامة الكائنات الخاصة بك. إن فهم @property واستخدامه بفعالية سيساعدك على كتابة تعليمات برمجية أفضل وأكثر قابلية للصيانة.


بيان الافراج تم إعادة نشر هذه المقالة على: https://dev.to/tapstechie/the-basics-of-pythons-property-decorator-explained-3k46?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3