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

الصفحات

الكائنات Class في بايثون Python الدرس|12|

 

29a1e3b8-3e84-4b14-b60d-0fa97512e420-cd6559189a3c.small

Object Oriented Programming

درس اليوم هو عن البرمجة الكائنية الموجهة oop ,يتكون هذا الكائن من methods دوال , هذا الكائن تندرج تحته الدوال , ممكن نكتب اكثر من دالة و نعمل لها تضمين تحت الكائن تبقى وظيفته انه مسؤول عن هذه الدوال و بدل استدعاء كل دالة لوحدها نستدعي الكائن في الدوال الذي به كلها.

لكتابة كلاس نكتب كالتالي:
>>> 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

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

مثال
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)
عندما نعمل run ستكون النتائج كالتالي :
hello world man
my new data
data
26
المثال اظنه مفهوم للجميع لا يحتاج شرح و النتيجة واضحة كتبناها.

الوراثة

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

مثال عن الوراثة

class Info2 (Info):
هكذا الكلاس الجديد 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
هذه عملية الوراثة بإختصار.

يمكنكم الدخول لقناتنا في تلجرام و الاستفسار عن اي فقرة غير مفهومة.
(رابط قناتنا التلجرام : https://t.me/Programmer_Tech )
هل اعجبك الموضوع :

تعليقات

التنقل السريع