في الفيديو السابق ، علمنا أن Opie هو ما نسميه النموذج ، طريقة للتفكير في الكود الخاص بنا وهيكل
الكود الخاص بنا.
وسأقوم بربط هذه المقالة الممتازة من ويكيبيديا حول تاريخ لغات البرمجة.
كما ترى ، بدأنا بلغات البرمجة الأساسية.
لدينا أشياء مثل لغة التجميع التي كانت منخفضة المستوى حقًا ، قريبة جدًا من كود الآلة.
كان لدينا أشياء مثل COBOL ثم بدأنا ببطء عندما بدأنا في كتابة المزيد والمزيد من الأكواد في الستينيات
والسبعينيات ، بدأنا في إنشاء بعض هذه النماذج الأساسية.
وأحد النماذج الكبيرة التي ظهرت ، خاصة مع لغة برمجة Smalltalk
، كانت فكرة البرمجة الشيئية أو اللغة الموجهة للكائنات.
كما ترى ، حتى تلك النقطة ، كتبنا ما نسميه الكود الإجرائي.
ما يعنيه ذلك هو أنه إذا نظرنا إلى ملف Python ، على سبيل المثال ، فإن الكود الإجرائي يشبه الإجراء
تمامًا.
كان لدينا ببساطة سطور من واحد إلى آخر ، دعنا نقول 100 ، وانتقلنا للتو من أعلى السطر إلى
أسفله.
كان لدينا شرطية ، ربما حلقات ، لكن كل شيء كان يفعل هذا ، افعل ذلك.
لقد كنا نقول للآلة ، مرحبًا ، افعل هذا بالضبط.
أنا على وشك إخباركم بإدخال النماذج الموجهة للكائنات.
تغير هذا قليلا.
بدأنا نقول ، مرحبًا ، لنضع نموذجًا في كودنا يمثل كائنًا حقيقيًا.
على سبيل المثال ، إذا كنت على وشك ترميز سيارة ، فسأقوم بإنشاء كائن سيارة يحتوي على بيانات عن لونها ونوع المحرك
الذي تحتوي عليه وعدد المقاعد التي بها ، وكذلك إجراءات مثل الأساليب التي يمكننا اتخاذها
عليه ، مثل أن السيارة يمكن أن تتقدم ، يمكنها أن تعود للخلف ، يمكنها أن تفتح الباب.
وبدلاً من وجود هذه التعليمات البرمجية الإجرائية سطراً بسطر ، يمكننا التفكير في النماذج ، مخططات
العالم الحقيقي ، لأننا كبشر ننظم الأشياء.
فكر في غرفة.
فكر في مصنع من خلال تنظيم الأشياء ووجود مجموعات مختلفة في موقع معين ، والعمل
معًا.
هذه طريقة أفضل للتفكير وإدارة الأشياء.
فكيف سيبدو هذا في بايثون؟
حسنًا ، Python هي لغة موجهة للكائنات أو يمكن أن تكون كذلك ، مما يعني أنها قادرة على دعم الأفكار المفتوحة.
هذه الفكرة عن الكائنات والنمذجة وقد رأينا ذلك عندما نستخدم النوع ، نرى أن كل شيء هو كائن
لأننا نستخدم هذه الكلمة الأساسية للفصل.
لكن ما هي هذه الكلمة الأساسية للفصل في بايثون؟
يمكنني إنشاء بياناتي الخاصة ، واكتب صفي الخاص بي ببساطة عن طريق قول الفصل ، وبعد ذلك يمكنني تسميته
كما أريد.
دعنا نقول الطبقة.
كبير.
هدف.
الآن على الفور.
ترى هنا أن اصطلاح التسمية مختلف عما رأيناه من قبل.
سوف نتأكد من أنها مكتوبة بحروف كبيرة ، وهذا هو المعيار.
نريد أن نجعل المبرمجين يعرفون أن هذا سيكون فصلًا دراسيًا وأننا لا نستخدم حالة الثعبان.
نحن نستخدم ما نسميه حالة الجمل ، أي كل كلمة جديدة هي حرف كبير.
ثم هنا نستخدم النقطتين ، ثم هنا نكتب الكود الخاص بنا.
الآن ، لن أكتب الرمز الآن.
أنا فقط سأمر.
لكن هناك ، لقد قمت للتو بإنشاء فصل دراسي جديد ، لذلك إذا قمت بذلك ، دعنا نقول ، على سبيل المثال.
يكتب.
كائن كبير وأنا انقر فوق تشغيل.
حسنًا ، ما زلت أحصل على الكتابة لأن ما أنشأناه الآن هو هذه الفئة ، وهي عبارة عن مخطط
، لكننا لم ننشئ الكائن في الواقع.
أعلم أن الصياغة يمكن أن تصبح مربكة ، لكن تحمل معي.
سأشرح هذا.
يمكننا الآن إنشاء ، دعنا نقول ، الكائن الأول يساوي كائنًا كبيرًا ثم تشغيل هذه الفئة.
لذلك إذا قمت بكتابة الكائن هنا ، فاعترض على واحد وانقر فوق تشغيل.
أحصل على الفصل.
كائن كبير.
يمكنك تجاهل الرئيسي هنا الآن لأننا سنتحدث عنه لاحقًا.
لكنك ترى هنا أنني قمت للتو بإنشاء كائن خاص بي.
الآن ، دعنا نفكر فيما حدث للتو هنا ، لأن هناك الكثير لنفهمه.
ترى البرمجة الكائنية ، هناك فكرة فئة وكائن.
الآن ، هذا الفصل.
إنه المخطط.
مخطط ما نريد خلقه.
ما هي السمات الأساسية التي هي خصائص صفنا؟
ما هي بعض الأساليب أو الإجراءات الأساسية التي يمكن لفصلنا اتخاذها؟
وبعد ذلك من هذا المخطط ، يمكنني إنشاء كائنات مختلفة مرارًا وتكرارًا باستخدام هذا باعتباره لبنة
البناء.
إذن هذا المخطط هو ما نسميه الفصل.
الذي نحدده بالكلمة الأساسية للفصل ، ويمكن إنشاء مثيل لهذه الفئة.
هذا هو عمل إنشاء حالات مختلفة.
وما هي هذه الحالات؟
هذه كلها أشياء.
الآن التسمية هنا شيء يجب أن تعتاد عليه.
وجميع لغات البرمجة الشيئية لها هذه اللغة.
لذا عليك فقط أن تفهم ما يقوله أحدهم.
مرحبًا ، لقد قمت للتو بإنشاء مثيل لفصل دراسي.
هذا يعني ، مرحبًا ، لقد قمت للتو بإنشاء مثيل جديد ، كائن جديد.
بالنظر إلى هذا الشكل ، دعنا نعود إلى الكود الذي كتبناه للتو.
لقد أنشأنا هنا فصلًا دراسيًا أو مخططًا.
ثم هنا هذه الفئة المزدوجة هي إنشاء مثيل للفصل والقول ، مرحبًا أيها الفصل ، استخدم كل ما لديك رمز
هنا وقم بإنشاء مثيل له وإنشاء كائن جديد.
لذلك نقوم بإنشاء كائن جديد عن طريق إنشاء مثيل لهذه الفئة.
وهذا بالضبط ما نفعله بشيء مثل القائمة ، أليس كذلك؟
يمكنني إنشاء قوائم متعددة مرات ومرات.
وفي كل مرة أقوم بإنشاء قائمة ، يمكنني الوصول إلى كل هذه الأساليب وأحيانًا السمات التي
يمكنني استخدامها.
وبهذه الطريقة أقوم بتوفير الكثير من الوقت بدلاً من ترميزها بنفسي.
وبنفس الطريقة يمكنني إنشاء كائنات متعددة هنا.
يعترض على.
الكائن الثالث.
مثل هذا تماما.
والآن لدي ثلاثة أشياء مختلفة يمكنني استخدامها بناءً على هذا المخطط.
الآن ، المخطط الآن لا يحتوي على أي شيء لأنه حسنًا ، يمكنني إضافة رمز هنا لاحقًا وسنفعل ذلك
في الفيديو التالي.
لكن الجمال هنا هو أن نفكر في الكفاءة.
ترى المخطط نفسه.
سيتم تخزين الفصل في الذاكرة.
لذلك سيقول مترجم بايثون ، مرحبًا ، الكائن الكبير سيكون مخططًا لهذا.
لذلك سأخزن كل هذا الرمز في الذاكرة.
لكن في كل مرة أقوم فيها بإنشاء كائن ، لا يتعين علي إعادة كتابة الكود أو القيام بأي شيء من هذا القبيل.
يمكنني ببساطة أن أقول ، مرحبًا ، اذهب في الذاكرة إلى حيث يوجد الكائن الكبير وقم فقط بتشغيل هذا الرمز حتى نحافظ مرة أخرى
على الكود الخاص بنا جافًا.
لدينا مكان واحد يسمح لنا بتحويل كودنا إلى كائنات.
لنأخذ استراحة ونتوسع في هذا الفصل في الفيديو التالي.