القائمة الرئيسية

الصفحات

ألفئات في بايثون Classes in Python

 

ألفئات في بايثون Classes in Python
أن لغة بايثون هي لغة برمجية كائنية ألتوجه Object Oriented Programming  ،حيث يكون كل جزء في الكود عبارة عن كائن Object، وفي هذه ألمقالة سنتطرق ألى شرح هذا المفهوم ألمهم جداً وألذي يجب على كل متعلم لهذه أللغة الرائعة أن يفهمه جيداً وبشكل كامل لأنه سيستعمله في تنفيذ ألمهام ألبرمجية عند تصميم برنامج معين.

ألفئات في بايثونClasses in Python


ذكرنا في ألقسم الأول من سلسة كورس (تعلم بايثون) أن لغة بايثون هي لغة برمجية كائنية ألتوجه Object Oriented Programming  ،حيث يكون كل جزء في الكود عبارة عن كائن Object، وفي هذه ألمقالة سنتطرق ألى شرح هذا المفهوم ألمهم جداً وألذي يجب على كل متعلم لهذه أللغة الرائعة أن يفهمه جيداً وبشكل كامل لأنه سيستعمله في تنفيذ ألمهام ألبرمجية عند تصميم برنامج معين.

ماذا نعني بالبرمجة الكائنية ألتوجه ؟

"كل شيء حولنا هو كائن!!" يعني أن مايدور حولنا نعامله على أنه كائن،وايضاً كل شيء في الكود البرمجي هو كائن ايضاَ،على سبيل المثال ألقائمة List والقاموس dictionary هما عبارة عن كائنات في بايثون أيضاً.
أذن الان فهمنا ماهو الكائن Object،الان لنتطرق ألى مفهوم ألفئة Class وهي التي تحتوي على كائنات،أي أنها تضم مجموعة من الكائنات،وهذه الكائنات تنتمى ألى الفئة class،وعندما نريد أن نصل ألى كائن معين علينا اولاً ألوصول الى الفئة ألتي تضم هذا الكائن.
لنأخذ مثال واقعي من حياتنا أليومية لكي يسهل فهم مانحاول أن نوضحه،لنفرض أن لدينا فئة class هي فئة سيارة Car وهذه ألفئة تضم عدة كائنات لوكالات تجارية للسيارات مثلاً تويوتا Toyota و هيونداي Hayondai و فورد Ford.
تحتوي فئة السيارة Car على بعض مواصفات لهذه السيارات مثلاً أللون color والسعر Price وهذه المواصفات تشمل جميع الوكالات التجارية للأنواع ألتي ذكرناها وكما موضحة في ألصورة ألتالية:



فعندما نريد أستدعاء ألكائن تويوتا Toyota من فئة سيارة car ،سيتم أستدعاء جميع ألمواصفات ألخاصة بها من اللون color والسعر price ،هذه المواصفات نسميها attributes ألخاصة بالفئة.
وتحتوي فئة السيارة Car  أيضاً على بعض العمليات ألمتعلقة بالسيارات مثلاُ Speed_up() و Slow_down() وهذه العمليات تسمى Methods كمل موضحة في الصورة أعلاه.

خلاصة مانريد أن نقوله هو أن ألفئة Class تحتوي على ثلاثة أقسام وهي:

  1. أسم ألفئة Class Name
  2. ألمواصفات Attributes
  3. ألعمليات Methods
ويعتبر ألكائن هو نسخة من ألفئة Class حيث يأخذ جميع مميزاتها ويستنسخها بداخله،ولكن بأضافة ألخصائص ألمتعلقة به كما موضح في ألصورة أعلاه.
والآن لنتعرف كيفية أنشاء فئة class بلغة بايثون:
لأنشاء فئة يجب أستخدام كلمة class في الكود من خلال ألمثال الآتي:
class My_Class:
    x = 3
print(My_Class)

حيث أنشأنا فئة أسميناها My_Class وعندما نقوم بطباعة هذه الفئة ستظهر لدينا أنها من نوع فئة Class
<class '__main__.My_Class'>

والآن لنتعرف كيفية أنشاء كائن Object في الكود وذلك من خلال المثال الآتي:
لأنشاء كائن سنستخدم الفئة My_class ألتي أنشأناها في المثال السابق بالشكل التالي:
class My_Class:
    x = 3
Object=My_Class()
print(Object.x)

كما نرى في الكود أعلاه تم أنشاء كائن Object ينتمي ألى ألفئة My_Class حيث سيأخذ ميزات هذه ألفئة(وألتي تحتوي على ميزة واحدة فقط وهي x) ،وتم طباعة ميزة هذا الكائن وألذي سيظهر لدينا:
3

في الأمثلة أعلاه تعلمنا كيفية أنشاء فئة وكائن بأبسط الأشكال،ولكن في الحقيقة هذا لايخدمنا في المسائل البرمجية المعقدة لأنها ستحتوي على تفاصيل أكثر مماتعلمناه، حيث أننا سنقوم بأستخدام دالة __init__() Function.
جميع الفئات classes تحتوي على دالة __init__() Function ألتي ستُنفذ عند أنشاء الفئات،وتقوم بأسناد ألقيم ألى خصائص الكائن أو لأي عمليات ألتي تُنفذ عند أنشاء الكائن.

مثال:

:class Car
    :(def __init__(self, color, price  
        self.color = color    
        self.price = price    
(Toyota = Car("White", 15000
(print(Toyota.color
(print(Toyota.price

شرح الكود:
قمنا بأنشاء فئة أسميناها Car وتحتوي على دالة __init__ لغرض تهيئة قيم الخصائص ألى الكائن وتحتوي على خصائص اللون Color والسعر Price وقمنا بعد ذلك بأنشاء كائن أسميناه Toyota ألذي سيكون تابع الى الفئة Car وله نفس خصائص هذه الفئة،حيث قمنا بأستدعاء خاصيتي color و price وعند الطباعة ستظهر لدينا:
White
15000

وكما ذكرنا من قبل،تحتوي الفئة class على عمليات methods أيضاً،وهي دوال تكون تابعة للكائنات وتنفذ عملية معينة عند أستدعائها،لنرى في المثال الآتي:

مثال:
class Car:
    
def __init__(selfcolorprice):
        
self.color = color
        
self.price = price
    
def speed_up(self):
         
print("I am speeding up")


Toyota = Car(
"White"15000)
Toyota.speed_up()

شرح الكود:

الفئة مشابهة للمثال السابق ولكن هذه المرة أضفنا method وهي دالة speed_up() ووظيفة هذه ألدالة هي طباعة عبارة"I am speeding up" حيث تم في ألسطر الأخير من الكود أستدعاء هذه الدالة بواسطة الكائن Toyota .
ألى هنا نأتي ألى نهاية هذا ألمقال وأتمنى أن أوصلت لكم ألفكرة عن مفهوم ألفئات Classes في لغة بايثون Python ،وأرجوا أن ينال أستحسانكم ورضاكم،وأي سؤال أو استفسار أن تتركوه لي في خانة التعليقات ألموجودة في الأسفل.
شكراً لكم

م.م رسول حسن 







reaction:

تعليقات