English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل الأساسيات ببروتونيكس

تحكم في العملية ببروتونيكس

الوظائف في بايثون

أنواع البيانات في بايثون

عمليات ملفات ببروتونيكس

الأغراض والأصناف ببروتونيكس

التاريخ والوقت ببروتونيكس

معرفة متقدمة ببروتونيكس

كتيب المراجعة ببروتونيكس

استخدام بنيانة() ببروتونيكس واستمارات

وظائف مدمجة في بايثون

بنيانة() بناءات العودة الخاصية.

نموذج syntax لـ property() هو:}

property(fget=None, fset=None, fdel=None, doc=None)

اقرأ أيضًا: Python @property: كيفية استخدامها ولماذا؟

معلمات property()

تأخذ property() أربعة معلمات:

  • fget (اختياري) -وظيفة تستخدم للحصول على قيمة الخاصية. افتراضيًا هو None.

  • fset (اختياري) -وظيفة تستخدم لضبط قيمة الخاصية. افتراضيًا هو None.

  • fdel (اختياري) -وظيفة تستخدم لإزالة قيمة الخاصية. افتراضيًا هو None.

  • doc (اختياري) -نص يحتوي على وثيقة الخاصية (docstring). افتراضيًا هو None.

قيمة property()

من خلال property() يعود إلى خاصية الخاصية من المقدم.

  • إذا لم يُقدم أي من المعلمات، فإن property() سيعود إلى خاصية أساسية لا تحتوي على getter، setter أو deleter.

  • إذا لم يُقدمdoc،استخدام docstring للوظيفة getter.

مثال1: إنشاء خاصية باستخدام getter، setter وdeleter

class Person:
    def __init__(self, name):
        self._name = name
    def get_name(self):
        print('الحصول على الاسم:')
        return self._name
    def set_name(self, value):
        print('أحدد الاسم: ' + value)
        self._name = value
    def del_name(self):
        print('حذف الاسم')
        del self._name
    # استخدام get_name، وset_name لضبط الخاصية
    # و طريقة del_name
    name = property(get_name, set_name, del_name, 'Name property')
p = Person('زنغ سان')
print(p.name)
p.name = 'لي سى'
del p.name

نتائج الظهور

الحصول على الاسم:
زنغ سان
أحدد الاسم: لي سى
حذف الاسم

في هذا السياق،_nameللاستخدام كحفظPersonمغير الاسم الخاص.

نحن نضبط أيضًا:

  • get_name() هي طريقة الحصول على اسم الشخص،

  • طريقة setter set_name() لضبط اسم الشخص،

  • يستخدم طريقة del_name() ل�除 اسم الشخص.

الآن، نحن نستدعي طريقة property() لضبط اسم الخاصية الجديد.

كما يظهر في البرنامج، من خلال طباعة الخوارزمية الداخلية، يتم استدعاء p.name باستخدام get name() كgetter، وset name() كsetter، وdel name() كdeleter

مثال 2: استخدام ميزة @property

يمكن استخدام property()مزين بايثون استخدام @property لتوزيع getter، setter و Deleter بدلاً من.

class Person:
    def __init__(self, name):
        self._name = name
    @property
    def name(self):
        print('الحصول على الاسم:')
        return self._name
    @name.setter
    def name(self, value):
        print('تعيين الاسم إلى: ' + value)
        self._name = value
    @name.deleter
    def name(self):
        print('حذف الاسم')
        del self._name
p = Person('王麻子')
print('الاسم هو:', p.name)
p.name = '李二'
del p.name

نتائج الظهور

الحصول على الاسم:
الاسم هو: 王麻子
تعيين الاسم إلى: 李二
حذف الاسم

في هذا المكان، لم نستخدم property() بل استخدمنا ميزة @property.

أولاً، سنحدد أن طريقة name() هي أيضًاPersonالخاصية. يمكن إكمال هذه العملية باستخدام طريقة getter التي تظهر في البرنامج @property.

لذا، سنستخدم اسم الخاصية لتحديد setter و deleter.

هذا يتم من خلال استخدام @name.settersetter و @name.deleterDeleter.

لاحظ أننا استخدمنا نفس الطريقة name() التي لها تعريف مختلف لتعريف getter، setter وdeleter.

الآن، مهما كان الوقت، عند استخدام p.name، سيتم استدعاء getter، setter و Deleter المناسبين داخليًا، كما هو موضح في الطباعة التي تظهر في الداخل.

وظائف مدمجة في بايثون