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