recent
أخبار ساخنة

الكلاس و الكائن في بايثون PYTHON الدرس|12|

الصفحة الرئيسية

الكائنات object في بايثون

البرمجة الكائنية الموجهة oop هي إختصار للمصطلح object oriented programming, يتكون هذا الكائن من دوال methods.
هذا الكائن تندرج تحته الدوال ممكن أن نكتب اكثر من دالة و نعمل لها تضمين include وتحت الكائن تبقى وظيفته أنه مسؤول عن هذه الدوال و بدل إستدعاء كل دالة لوحدها نستدعي الكائن في الدوال الذي به كلها.

لكتابة كلاس نكتب كالتالي
>>>class Info:   #اسم الكلاس يجب ان يبدأ بحرف كبير حصراً للتميز
      def name (self):
         return "hello world"
      def age (self):
         return 26
>>>c = Info()
>>>c.name()
'hello world'
>>>c.age()
'26'

في المثال السابق انشأنا كلاس إسمه Info ووضعنا تعليق أنه إسم الكلاس يجب أن يبدأ بحرف كبير, وانشأنا دالة إسمها name و أعطينا قيمة ترجعها هي hello world,. وانشأنا دالة أخرى إسمها age و ترجّع لنا قيمة 26.
كلمة return بمثابة دالة الطباعة print و هي ترجّع لنا القيمة المحددة.
و انشأنا مُتغير إسمه c و عيننا له قيمة الكلاس Info و بعدها إستدعينا الدوال التي داخل الكلاس عن طريق المتغير c الذي انشأناه.

هذا في شل البايثون وضعنا return للميثود في مثالنا السابق, أما إذا كان ملف محفوظ نقوم بإستبدالها في print و نكتب جميع الطلبات وبعدها نعطي run لكي يطبع لنا الناتج.

الكونستركتور constractor في بايثون

الشكل العام للكونستركتور يكون عن طريق كتابة كلاس و أسفل هذا الكلاس نكتب def ثم نكتب دالة الكونستركتور وهي __init__ ثم فتح قوسين و نكتب به self.

الشكل العام لكتابة كونستركتور
class info:
   def __init__ (self):
مثال 1
class info:
     def __init__ (self):
         print ("ahmed kaissar")
     def my_info (self):
         print ("database hack")
c = Info ()
 
إذا عملنا run حالياً ستكون النتيجة هي:
ahmed kaissar
 
نُلاحظ أنه طَبَعَ لنا فقط أول ميثود, أما الميثود الثانية لا تطبع إلا عند إستدعاءها شخصياً كالتالي
c.my_info()
 
بعدها إستدعاءها سوف يتم طباعتها.

مثال 2
class Info:
    def __init__ (self, name = "kaissar", age = 21):
        self.name = name
    self.age = age 
    def my_info (self,data = "my data"):
        print (" hello world man ")
        print (data)
c = Info ("data", "26")
c.my_info ("my new data")
print (c.name)
print (c.age)
#عند عمل تشغيل للكود ستكون النتيجة
hello world man
my new data
data
26

المثال مفهوم للجميع لا يحتاج شرح و النتيجة واضحة كتبناها.
 

الوراثة inheritance في بايثون

الوراثة inheritance تعني أن كلاس يورّث كلاس آخر يأخذ جميع الميثود في الكلاس الآخر.
مثلاً نريد عمل كلاس جديد و يورّث الكلاس في مثالنا السابق, ستكون الوراثة كالتالي

أمثلة عن الوراثة inheretance في بايثون

سوف نكتب كلاسين وهما Info و Info2 و الكلاس الجديد Info2 يرث جميع ما في الكلاس Info.
class Info2 (Info):
   def mydata (self):
      print ("hello man")
c = Info2()
print (c.age)
print (c.name)
c.my_info()
c.mydata()
 
إذا عملنا run الآن سوف نحصل على النتيجة التالية
21
kaissar
hello world man
my data
kaissar
hello man

هذه هي عملية الوراثة بإختصار.
google-playkhamsatmostaqltradent