English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
بنيانة() بناءات العودة الخاصية.
نموذج syntax لـ property() هو:}
property(fget=None, fset=None, fdel=None, doc=None)
اقرأ أيضًا: Python @property: كيفية استخدامها ولماذا؟
تأخذ property() أربعة معلمات:
fget (اختياري) -وظيفة تستخدم للحصول على قيمة الخاصية. افتراضيًا هو None.
fset (اختياري) -وظيفة تستخدم لضبط قيمة الخاصية. افتراضيًا هو None.
fdel (اختياري) -وظيفة تستخدم لإزالة قيمة الخاصية. افتراضيًا هو None.
doc (اختياري) -نص يحتوي على وثيقة الخاصية (docstring). افتراضيًا هو None.
من خلال property() يعود إلى خاصية الخاصية من المقدم.
إذا لم يُقدم أي من المعلمات، فإن property() سيعود إلى خاصية أساسية لا تحتوي على getter، setter أو deleter.
إذا لم يُقدمdoc،استخدام docstring للوظيفة getter.
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
يمكن استخدام 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 المناسبين داخليًا، كما هو موضح في الطباعة التي تظهر في الداخل.