مرحبًا بعودتك.
في الفيديو السابق ، أوضحت لك كيفية استدعاء طريقة من فئة فرعية من الفصل الرئيسي.
لذلك في حالتنا ، قمنا بهجوم نقطة المستخدم.
من أجل تشغيل أسلوب الهجوم والمستخدم.
لقد قمت الآن بإزالة طريقة الهجوم من الآن لأنني أريد تجربة شيء مختلف.
أرغب في إنشاء دالة init هنا وستأخذ وظيفة init نفسها.
ثم لنفترض أن المستخدم سيتلقى ، دعنا نقول البريد الإلكتروني.
لأن جميع مستخدمي لعبتنا يحتاجون إلى رسائل بريد إلكتروني.
وهنا سنقول فقط إن البريد الإلكتروني بالنقاط الذاتية يساوي البريد الإلكتروني.
جميل وبسيط.
الآن هنا.
إذا كنت سأشغل هذا الرمز ودعنا نزيل هجوم نقطة المستخدم في الوقت الحالي.
لذلك لدينا نفس المعالج الذي أضفناه للتو أو نأسف لهذا الحرف الأول.
وقد فاز ساحرنا.
لذلك إذا قمت بتشغيل المعالج هنا ودعنا نقول أننا نريد تشغيل معالج بريد إلكتروني بنقطة واحدة.
إذا قمت بالنقر فوق تشغيل.
همم.
انا حصلت.
كائن المعالج ليس له سمات.
البريد الإلكتروني.
همم.
لكنني اعتقدت أنه سيتم الاتصال بالمستخدم عند إنشاء المعالج ، أليس كذلك؟
عندما نقوم بإنشاء معالج واحد.
حسنًا ، الشيء هو ، على الرغم من أننا قد نرث ، دعنا نقول ، على سبيل المثال ، إذا فعلت نقطة ،
فقد نرث.
تسجيل الدخول.
من المستخدم.
وإذا قمت بالنقر فوق "تشغيل" ، فإننا نرى أننا نرث ذلك.
المعالج لديه بالفعل وظيفة init مُنشئ بالفعل ، أليس كذلك؟
فكيف يمكننا حل هذا؟
حسنًا ، إحدى الطرق هي إضافة البريد الإلكتروني هنا ، أليس كذلك؟
ولديك البريد الإلكتروني فقط.
السمة فقط هنا.
لكن ما هي المشكلة في هذا؟
حسنًا ، إنه غير فعال ، أليس كذلك؟
لأنني إذا أنشأت فصلًا لرماة السهام ، فسأفعل نفس الشيء.
وعندما نعلم أن كل هذه السمات ستكون هي نفسها في جميع الفئات الفرعية لدينا ، فإننا نريد أن
نفعل ذلك هنا.
إذن ما هي الطريقة الأكثر فعالية للقيام بذلك؟
حسنًا ، نريد استدعاء طريقة init للمستخدم من الداخل من هنا.
الصحيح.
لأنه في كل مرة نقوم فيها بإنشاء معالج جديد ، سيتم استدعاء وظيفة init هذه.
لذا فإن طريقة القيام بذلك هي أن نقول نقطة المستخدم.
تسطير أسفل السطر فيه.
ومن ثم امنحها الذات.
ثم البريد الإلكتروني.
ثم البريد الإلكتروني هو شيء نمرره.
لذلك إذا نزلت هنا ، يمكنني القول.
Merlin في gmail. سيكون com هو البريد الإلكتروني.
لذلك إذا فعلت ذلك الآن ، دعنا نقول.
نقطة بريد إلكتروني لـ Wizard One وأنا أنقر فوق تشغيل.
لقد تلقيت بريد ميرلين الإلكتروني مرة أخرى.
كل ما فعلناه هو أننا نطلق على طريقة init.
للمستخدم داخل المعالج.
لذلك عندما أنشأنا معالجًا جديدًا ، قمنا بتشغيل هذه الوظيفة وداخل هذه الوظيفة ، قمنا بتشغيل user
dot init ومررنا البريد الإلكتروني الذي مررناه كوسيطة هنا.
الآن ، هذه طريقة واحدة للقيام بذلك.
ثم هناك طريقة أخرى ، وتسمى سوبر.
وهي كلمة أساسية.
كما ترى ، يتم تسليط الضوء عليه هنا.
وكل ما نفعله هو الركض بشكل ممتاز.
والسوبر يشير إلى الطبقة الفائقة أو الفئة أعلاه المعالج ، وهو المستخدم.
وهذه في الواقع إضافة جديدة اعتبارًا من Python 2. 2.
مع Super ، لم نعد بحاجة إلى الذات في الواقع ، لذلك يبدو رمزنا أكثر نظافة وكل ما نمرره هو هذا
وإذا نقرنا على Run.
ما زلنا نحصل على الإجابة الصحيحة.
ممتاز.
يسمح لنا بالإشارة إلى المستخدم بهذه الطريقة ولا داعي للقلق بشأن تمرير الذات.