لقد انتظرت وقتًا طويلاً لهذا لأنني تجنبت الحديث عن أساليب Dunder Magic هذه لفترة
طويلة.
في هذا الفيديو ، سنكتشف أخيرًا ما يفعلونه.
نحن الآن قادرون على رؤية ما يحتويه المثيل لدينا كطرق تستخدم طريقة rder.
وقلنا لكم أن هذه العناصر موروثة من فئة الكائن الأساسية.
الآن هذا يؤكد أساليبنا الخاصة.
تذكر كيف لدينا أشياء مثل الطول ، على سبيل المثال ، التي تتيح لنا معرفة طول المصفوفة.
يتم تنفيذ هذه في الواقع باستخدام هذه الأساليب dunder.
إنها تسمح لنا باستخدام وظائف محددة في Python على الكائنات التي تم إنشاؤها من خلال فصلنا الدراسي.
لذا اسمحوا لي أن أريكم ما أعنيه.
سننشئ فصلًا جديدًا وسيكون فصل ألعاب.
الآن هنا ، سنقوم بتعريف لعبة ونقوم بتهيئتها بنفسها.
ثم نقول أنه يحتوي على اللون و h.
الآن سنقول أن اللون يساوي اللون.
لذلك ستكون هذه صفاتنا.
و H.
رائع.
هناك صفنا.
الآن ، لنفترض أننا نريد إنشاء شخصية عمل.
سيتم تمثيل هذا الشكل بالحركة بلعبة ، دعنا نقول ، باللون الأحمر والأعمار.
إنه جديد تمامًا ، لذا فهو صفر.
الآن إذا استخدمت شيئًا مثل ، دعنا نقول se tr الذي يأتي مع هذا الكائن ، إذا فعلت str أو عمل الشكل.
نقطة تسطير حد ذاته tt آه مثل ذلك.
ونطبع هذا.
نرى أننا حصلنا على هذا.
إنه نفس الشيء بالضبط الذي نفعله.
شكل عمل حقوق السحب الخاصة.
مثله.
انظر إلى ذلك.
هذه الطرق المزدوجة للشرطة السفلية هي طرق خاصة تتعرف عليها بايثون.
على سبيل المثال ، Dunder STR.
تسمح لنا هذه الطريقة الخاصة باستخدام شكل عمل مثل هذا باستخدام دالة str المضمنة.
في الواقع ، إذا انتقلت إلى توثيق Python ضمن قسم أسماء الطرق الخاصة.
سترى أنه يمكننا إجراء التخصيصات الأساسية لهذه الأساليب غير المرغوبة.
وهي قائمة طويلة من كل هذه الأساليب الغامضة التي يمكننا استخدامها.
حاليا.
لا تذهب وتقرأ كل واحد منهم.
هناك الكثير ولن تستخدمها كثيرًا.
هناك فقط حالات قليلة محددة ستستخدمها ، والفكرة هي معرفة كيفية تعديلها
وكيفية عملها تحت الغطاء.
لذا.
لنستعرض بعض الأمثلة.
على سبيل المثال ، دعنا نعدل ما تفعله حقوق السحب الخاصة.
سأقوم بتعريف خاصتي.
حقوق السحب الخاصة هنا.
انا ذاهب الى الاتصال الذاتي.
ثم هنا ، سأعيد شيئًا مختلفًا.
سأعود ، دعنا نقول ، سلسلة SE.
هذا هو ، دعنا نقول ، اللون العصامي.
إذا قمت بتشغيل هذا.
أحصل على اللون الأحمر.
تذكر كيف قلت عدم تعديل أساليب Dunder؟
حسنًا ، في بعض الأحيان يُسمح لك بذلك.
ربما هناك حالات ، حالات خاصة ، حيث تريد أن يتصرف صفك بطريقة معينة.
تمامًا مثل القواميس ، والقوائم ، و tuple ، وكل كائناتنا في Python يمكن أن تتصرف بطرق معينة.
كيف تم الوصول إلى القوائم برقم فهرس وتم الوصول إلى قاموس باستخدام مفتاح.
يتم تنفيذ كل ذلك باستخدام هذه الأساليب القياسية.
وترى هنا أنه نظرًا لتعديلنا هذا ، فإن حقوق السحب الخاصة تُرجع الآن باللون الأحمر عند استدعائها في شكل العمل.
لا يغير الأشياء إلا داخل شخصية العمل.
إذا قمت بتشغيل هذا ، فسترى أنه لا يزال يعمل مثل هذا الشكل.
لأن هذه سلسلة.
يتم تعديل حقوق السحب الخاصة فقط عندما نستخدمها في هذا الكائن المحدد.
مثل ذلك.
ما هي الأشياء الرائعة الأخرى التي يمكننا القيام بها؟
حسنًا ، يمكننا أيضًا تغيير معنى الطول.
حتى الطول أستطيع أن أقول النفس.
وهنا يمكنني العودة.
الآن إذا قمت بطباعة.
طول شخصية العمل.
وأنا انقر فوق تشغيل.
لدي خمسة؟
رائع جدا.
بالمناسبة ، إذا كان هذا التسطير مزعجًا بعض الشيء ، وهو أمر مزعج بعض الشيء بالنسبة لي بصراحة
، سأضغط على الإعدادات هنا وأزل فقط ذكاء الكود حتى لا يخبرني عندما يكون الكود
الخاص بي خطأ ، ولكن نأمل أن نتمكن من تصحيحه بأنفسنا.
حسنًا ، ها نحن ذا.
لقد قمنا للتو بتغيير الطول.
Dunder لإرجاع خمسة.
دعونا نستمر في التجريب.
يمكننا أيضًا القيام بشيء مثل تسطير أسفل السطر وتسطير أسفل السطر وحذف وحذف.
حسنًا ، يتيح لنا بالفعل استخدام الكلمة الرئيسية المحذوفة التي لم نرها بالفعل من قبل.
حذف.
يمكننا فقط أن نقول العودة.
تم الحذف.
عليك أن تذهب هكذا ودعنا نطبع هنا.
تم حذف الطباعة إذا قمت بالنقر فوق تشغيل.
أرى أنني عدت محذوفة.
الآن كلمة الحذف التي لم أعلمك إياها حقًا لأنها ليست شيئًا تراه كثيرًا.
عادةً ما يتسبب هذا في بعض الأخطاء المضحكة في برامجنا والتي أحب تجنبها شخصيًا ، لكن الكلمة الأساسية
للحذف تحذف نوعًا من المتغيرات التي ربما كانت لدينا في برنامجنا.
حسنًا ، ماذا هناك أيضًا؟
دعونا نغير هذا.
لاستخدام شيء يسمى الاتصال.
والفحم شيء مثير للاهتمام.
لنفترض أنه مع الفحم ، سنعود ودعونا نقول نعم.
علامة استفهام.
الشيء الرائع في Carl هو أنه يمنح فئة لعبتنا بعض القوة العظمى.
يمكننا أن نقول رقم عمل ثم نقول ، حسنًا ، باستخدام المكالمة ، يمكننا في الواقع الآن استدعاء الكائن الفعلي
بهذه الأقواس.
لذا باستخدام الاستدعاء ، لدي هذه الطريقة الخاصة لاستدعاء وظيفة ، والتي ، بالمناسبة ، تحت غطاء المحرك ، الطريقة
التي يمكننا بها استدعاء الوظائف هي استخدام هذا الاستدعاء الخافت.
وإذا قمت بالنقر فوق تشغيل.
انا حصلت؟
نعم.
كم ذلك رائع؟
حسنا.
واحدة أخيرة ، لأنني أعتقد أنك بدأت في تكوين فكرة عن هذا.
كما قلت ، كل هذه متوفرة هنا.
عادة لا ترغب في الكتابة فوقها ، لكنك تريد فقط أن تعرف أن لديك القدرة على القيام بذلك
إذا اخترت ذلك.
التالي يسمى الحصول على العنصر.
لذلك دعونا نحدد الحصول على العنصر.
مرة أخرى ، سنستخدم self كمعامل أول ثم دعنا نقول أنا للفهرس وهنا
سنعود النقطة الذاتية ودعنا نضيف سمة قبل أن نضيفها.
سأقول ذاتيًا ضع نقطة على القاموس الخاص بي ثم أضف اسمًا.
يساوي يو يو.
ودعنا نفعل حيوانات أليفة تساوي خطأ؟
الآن باستخدام هذا ، أستطيع أن أقول بلدي dicked.
وإرجاع العنصر بناءً على الفهرس الذي نقدمه له.
لذا اسمحوا لي أن أريكم ما أعنيه.
إذا كنت الآن أطبع.
شخصية العمل.
نقطة.
وهنا ، بدلاً من عمل النقطة ، نقوم بعمل الأقواس المربعة تمامًا كما لو كنا نحصل على
عنصر القاموس.
يمكننا الآن استخدام عنصر get ، قل ما هي الخصائص التي لدينا في الاسم؟
لذلك دعنا نقول الاسم وإذا قمت بطباعة هذا الخطأ.
نسيت أن تضيف ملف.
فاصلة هنا.
لنحاول ذلك مرة أخرى.
وإذا قمت بالتمرير لأسفل ، يمكنك أن ترى أنني جيد حقًا في قراءة الأخطاء.
لم يتم تعريف شخصية عمل اسم نامر لأنها شخصية حركية وليست فوجا.
هذا أفضل.
انظر إلى ذلك.
اسمي.
كان Yo Yo قادرًا على الوصول باستخدام تدوين القوس باستخدام عنصر get.
الغطس.
رائع جدا.
لذا فإن هذه الأساليب السحرية الخاصة مثيرة للاهتمام حقًا لأنها تتيح لنا القيام ببعض التعديلات الجيدة ، وبعض
التعديلات المخصصة لفصولنا.
ويمكنك أيضًا فهم كيفية إنشاء أنواع افتراضية في Python وإمكانية الوصول والقدرات للحصول على كل هذه
التركيبات الخاصة.
لدينا الآن هذه القوة أيضًا.
لنأخذ استراحة ونقوم ببعض التمرين.