في اللغة الموجهة للكائنات ، فإن الفصل هو جزء من التعليمات البرمجية القابلة للتوسيع التي تمثل نموذجًا لإنشاء واستخدام كائنات تلك الفئة. يشير كائن الفئة ببساطة إلى مثيل للفئة المحددة.
أساسيات فئة بايثون
في لغة برمجة Python ، يتم تمثيل كل جزء من البيانات كمثيل لبعض الفئات. إذا لم تكن معتادًا على اللغة ، فراجع دليل المبتدئين لبايثون قبل الانتقال.
يوفر الفصل مجموعة من السلوكيات في شكل وظائف الأعضاء (تُعرف أيضًا بالطرق) ، والتي لها تطبيقات مشتركة بين جميع مثيلات تلك الفئة ، كما أنها تحدد الطريقة التي يتم بها تمثيل معلومات الحالة الخاصة بها في شكل صفات.
اقرأ أكثر: طرق الفصل في بايثون: الاختلافات المهمة
يمثل الكود أدناه مثالًا لفئة محددة في Python. توفر الفئة المحددة في الكود تنفيذًا لفئة RaceCar.
يوفر كل مثيل من الفئة نموذجًا بسيطًا لماركات سيارات مختلفة ويحتوي على الحالة التالية المعلومات: اسم السيارة ، واسم السائق ، ورقم لوحة ترخيص السيارة ، والسرعة الحالية ، ورسوم السرعة ، و لون.
تصمم فئة السيارات هذه مستشعرًا خاصًا داخل كل سيارة يسجل غرامة قدرها 50 دولارًا على سائق السيارة إذا تجاوز الحد الأقصى للسرعة القانونية وهو 140 ميلًا في الساعة.
مثال على فئة (فئة السيارة)
فئة السيارة:
#البناء
#the method مسؤولة عن تهيئة قيم المثيل #variables في الفئة.
def __init __ (self، car_name، driver_name، license_plate_number،
Current_speed، speeding_charge، color):
self.car_name = اسم السيارة
self._driver_name = driver_name
self._license_plate_number = License_plate_number
self._current_speed = current_speed
self._speeding_charge = speeding_charge
self._colour = اللون
# طرق الملحقات
# طريقة get_car_name ترجع اسم السيارة
def get_car_name (ذاتي):
العودة الذاتية
# طريقة get_driver_name ترجع اسم السائق
def get_driver_name (ذاتي):
العودة الذاتية
# طريقة get_license_plate تُرجع لوحة ترخيص السيارة
def get_license_plate (ذاتي):
إرجاع self ._license_plate
# طريقة get_current_speed ترجع السرعة الحالية التي تتحرك بها السيارة
def get_current_speed (ذاتي):
العودة الذاتية
# تقوم طريقة get_speeding_charge بإرجاع المبلغ الإجمالي للمال الذي يقوم ملف
# يجب أن يدفع السائق مقابل السرعة الزائدة
def get_speeding_charge (ذاتي):
العودة الذاتية
# طريقة get_colour تعيد لون رحلتنا الجميلة!
def get_colour (ذاتي):
العودة الذاتية
طرق #Mutator
# قيمة set_driver تغير سائق سيارتنا.
def set_driver (self، new_driver):
self._driver_name = new_driver
تضمن طريقة speeding_ticket # دفع 50 دولارًا للسائق عندما # اشتعلت السرعة فوق 140 ميلاً في الساعة :(
def speeding_ticket (self، current_speed):
إذا كانت السرعة الحالية <= 140:
عودة كاذبة
آخر:
self._speeding_charge + = 50
العودة صحيح
تضمن طريقة make_payment # أن يكون السائق قادرًا على دفع جميع # المبلغ الذي يدين به لرسوم مخالفات السرعة.
def make_payment (self، amount_paid):
self._speeding_charge - = المبلغ المدفوع
شرح مثال فئة بايثون
المعلمة "الذاتية"
أولاً ، لاحظ أن هناك فرقًا بين توقيع الأسلوب المعلن في الفئة وتوقيع الأسلوب الذي يستخدمه المبرمج لاستدعاء الوظيفة. على سبيل المثال ، ملف get_colour الطريقة كما هو محدد في الفئة تأخذ معلمة واحدة وهي المعلمة "self".
ومع ذلك ، عندما يقوم المبرمج باستدعاء هذه الطريقة على مثيل للفئة ، فإنه لا يوفر أي معلمات. يمكن ملاحظة هذه الظاهرة نفسها في طريقة speeding_ticket التي تم تعريفها بأخذ معلمتين في الفصل (أي self و current_speed) ، لكن المبرمج قادر على تنفيذ هذه الطريقة من خلال توفير القيمة لـ "current_speed" فقط معامل.
هذا لأن الغرض من المعلمة "self" المقدمة هو ربط الطريقة بمثيل الكائن الذي تم استدعاؤها وهي ليست قيمة يقدمها المبرمج.
المنشئ
يشير مُنشئ الفئة إلى طريقة الفئة التي يمكن للمستخدم الاتصال بها لإنشاء مثيل كائن لتلك الفئة. في فئة السيارة ، يمكن للمستخدم إنشاء مثيل كائن باستخدام الصيغة التالية:
# إنشاء بوجاتي الخاصة بنا :)
سيارة ("Bugatti" ، "David Sasu" ، 90828 ، 0 ، 0 ، "Cherry Red")
ينتج عن تنفيذ هذا الرمز استدعاء للطريقة __init__ في فئة السيارة. تتمثل مسؤولية هذه الطريقة في إنشاء كائن سيارة ائتمان تم إنشاؤه حديثًا بقيم المثيل المتوفرة. يتكون كل كائن من فئة السيارة من ستة متغيرات حالة وهي:
- _car_name
- _driver_name
- _license_plate
- _السرعة الحالية
- _speeding_charge
- _لون
طرق الملحقات
هذه هي الطرق التي تمت كتابتها للوصول إلى معلومات الحالة لمثيل الكائن. في فئة السيارات ، كانت طرق الملحقات التي تمت كتابتها هي:
- get_car_name
- get_driver_name
- get_license_plate
- get_current_speed
- get_speeding_charge
- get_colour
طرق المطفر:
هذه هي الطرق التي تمت كتابتها لتغيير معلومات الحالة لمثيل الكائن. في فئة السيارات ، طرق التحوير التي تمت كتابتها هي:
- set_driver
- السرعة
- قم بالدفع
مفهوم التغليف
"التغليف" هو مصطلح يستخدم لوصف مبدأ التصميم الموجه للكائنات حيث يجب ألا تكشف مكونات البرنامج عن التفاصيل الداخلية لعمليات التنفيذ الخاصة بها. لزيادة فهمك لمفهوم التغليف ، راجع مقالة عن التغليف.
التحقق من الخطأ
إن تطبيقنا لفئة السيارات ليس قويًا لأنه من المحتمل أن يتعطل أو يعطل اعتمادًا على المدخلات التي يتلقاها من المبرمج.
أولاً ، لاحظ أننا لا نتحقق من أنواع معلمات speeding_ticket وطريقة make_payment ، ولا نتحقق من أنواع أي من معلمات المُنشئ. قد يؤدي هذا إلى تعطل البرنامج إذا قدم المستخدم حجة لم تكن متوقعة. على سبيل المثال ، إذا أجرى المستخدم مكالمة مثل speeding_ticket ("chips ahoy") ، فسوف يتعطل البرنامج لأن النوع الذي تتوقعه الطريقة كان عددًا صحيحًا وليس سلسلة.
أنت الآن تفهم أساسيات فئة بايثون
في هذه المقالة ، تعرفت على مفهوم فئة بايثون وكائن فئة بايثون. لقد تعرفت أيضًا على الأفكار التي بنيت عليها فئة Python مثل: التغليف ، والمعرف "الذاتي" ، وطرق الوصول ، وطرق التحوير.
باستخدام هذه المعلومات ، يجب أن تكون قادرًا على إنشاء فصل بايثون بسيط بنفسك واختباره :)
الآن ، سيتعين عليك التحقق من هويتك عبر جهازك المحمول لربط حسابك على سطح المكتب وتطبيق الويب.
- برمجة
- بايثون
اشترك في نشرتنا الإخبارية
انضم إلى النشرة الإخبارية لدينا للحصول على نصائح تقنية ومراجعات وكتب إلكترونية مجانية وصفقات حصرية!
خطوة أخرى أيضا…!
يرجى تأكيد عنوان بريدك الإلكتروني في البريد الإلكتروني الذي أرسلناه لك للتو.