البرمجة

فهم مفهوم التوريث في Python

عند استخدام التوريث في بيثون، فإن المتغيرات التي تعرف في الصنف الأساسي (الأب) يمكن الوصول إليها في الصنف الموروث (الابن). ومع ذلك، في الحالة التي واجهتها، يحدث خطأ لأنك تحاول الوصول إلى المتغير isFrozen داخل الصنف الموروث layer قبل أن يتم تعيينه. عندما تكون تعليمة print isFrozen موجودة في الصنف layer، يحاول بيثون البحث عن قيمة isFrozen داخل الصنف layer نفسه، ولكنه لا يجدها لأنها لم تتم تعيينها في هذا الصنف بعد.

بمجرد أن تعين قيمة isFrozen في صنف layer، سيكون بإمكانك الوصول إليها. على سبيل المثال، يمكنك تعيين قيمة افتراضية لـ isFrozen في الصنف layer لتتمكن من استخدامها:

python
class frozen(object) : isFrozen = False print 'In base' class layer(frozen): isFrozen = True print isFrozen

بهذه الطريقة، يمكنك الوصول إلى isFrozen داخل الصنف layer واستخدامه بشكل صحيح.

المزيد من المعلومات

عند استخدام التوريث في بيثون، يتم إنشاء نسخة من الصنف الأساسي (الأب) في الصنف الموروث (الابن)، مما يعني أن الصنف الموروث يرث جميع المتغيرات والوظائف من الصنف الأساسي. ومع ذلك، يمكن تعديل قيم المتغيرات في الصنف الموروث دون أن يؤثر ذلك على الصنف الأساسي.

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

علاوة على ذلك، يمكنك أيضًا استخدام دوال في الصنف الموروث للتعامل مع المتغيرات التي تم توريثها من الصنف الأساسي. على سبيل المثال:

python
class frozen(object): isFrozen = False def __init__(self): print('In base') def freeze(self): self.isFrozen = True class layer(frozen): def __init__(self): super().__init__() # يجب استدعاء __init__ من الصنف الأساسي لتنفيذه self.freeze() print(self.isFrozen) layer_instance = layer() # سيتم تنفيذ الكود في __init__ لكل من الصنف الأساسي والصنف الموروث

في هذا المثال، يتم استخدام دالة freeze التي تم تعريفها في الصنف الأساسي frozen لتغيير قيمة isFrozen في الصنف الموروث layer.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

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