تسمى هذه الدالة المتفردة special method، وتسمى أيضًا الدالة المُهيئة initializer، وفي اللغات الأخرى تسمى constructor، إلا إن هناك اختلافات طفيفة بينهما.
وظيفتها بسيطة جدًا، في هذه الدالة تحدد ما هي المدخلات التي تريد للفئة class أن تأخذها. ولك أن تضع فيها القيم الثابتة إن أردت. سأعطيك مثالًا، ليتضح المقصود. سنبني حاسبة بسيطة تأخذ عدديين فقط، وتوفر لك عمليتين حسابيتين إما الجمع وإما الطرح. بسم الله:
class Calc:
def __init__(self, x, y): #حددنا هنا المدخلات التي تأخذها هذه الفئة وهي العددان x و y
self.x = x
self.y = y
def add(self): # هذه الدالة للقيام بعملية الجمع
return x + y
def sub(self): وهذه للطرح
return x - y
ijma3 = calc(3, 2).add() #سنحصل على القيمة 5
e6ra7 = calc(3, 2).sub() #سنحصل على القيمة 1
فكما ترى فوظيفة __init__ هي تحديد نوع المدخلات (والتي هي هنا x و y)، وحفظها في الفئة(class) حتى نستخدمهن في الدوال الأخرى.
ال __init__ هي ماجك مثود تخليك تعَّرف الداله جوه الكلاس مررة وحده بس...... يعني زي ما تقول كده
بتختصرلك تعريف الداله مليون مررة في البروجكت
يعني انت مثلا بتعمل مشروع لعبه عربيات ..... مثلا... اكيد هتحتاج لكل عربيه فانكشن علان طحتلها صفات و تفاعلات ... اهو الكلاس ده بقى هيساعدك عشان مطحتش مليون فانكشن و جواه ال__init__ عشان تساعدك برضه متعرفش الفانكشن دي عشروميت مررة جوه البروجكت
.... و برضه نصيحه هقولك عليها لوجه الله لو عايز ال oop من غير تعقيد و كلكعه روح لمستر ابراهيم عادل
على يوتيوب (اسم القناه octucode) او روح للابكيشن بتاعه ( الغيير مدفوع ) وبرضه اسمه نفس اسم القناه (ملحوظة ده مش اعلان ) المستر دة بيشرح بضمير فيستحق التقدير عشان كده بنصح بيه 😀
صدقت، كل ما فعلتَ هو أن غيرتَ اسم __init__ إلى numbers ولكن المفهوم هو نفسه. إن سألتني لماذا هذا الاسم __init__ ، فسأقول لك: هذا ما تواضع عليه المبرمجون.
ميزة __init__ أنك تستطيع تمرير ما تريد باستدعاء اسم الكلاس فقط، حيث أن بايثون ستعلم أنك تقصد __init__.
بايثون هي لغة برمجة مجانية مفتوحة المصدر،متعددة المنصات و من ميزاتها أنها سهلة التعلم.
المجتمع يناقش كل ما يتعلق بتعليم و استخدام لغة بايثون على المستوى العربي.