دعنا نكتب في النهاية المصمم الخاص بنا.
تذكر أن مصمم الديكور يشحن وظيفتنا.
إنها ببساطة وظيفة تلتف بوظيفة أخرى وتعززها أو تغيرها.
لكن أفضل طريقة بالنسبة لي لشرح ما هو عليه في الواقع هو الترميز الخاص بنا.
لذلك دعونا نفعل ذلك.
دعنا نحدد ملف.
Decorator ، وسيقبل هذا المصمم وظيفة على الفور.
يجب أن نعلم أن هذه دالة ذات رتبة أعلى هنا الآن.
داخل هنا ، سنقوم باستدعاء الوظيفة.
لكن قبل أن نفعل ذلك ، سنلف هذه الدالة في دالة أخرى.
لذلك سنقول تعريف وظيفة الالتفاف.
إذن هذا مجرد غلاف ووظيفة الالتفاف هذه.
ستكون وظيفة تعمل ببساطة على تشغيل هذا الفانك.
وأخيرًا ، سنقوم بإرجاع وظيفة الالتفاف.
ولاحظ هنا أنني لا أسميها ، أنا فقط أعيدها حتى يمكن لأي شخص استخدامها لاحقًا.
تمام.
الآن ، لنفترض أن لدينا وظيفة بسيطة.
مرحبًا.
وهذه الوظيفة البسيطة تطبع فقط.
مرحبًا.
يا لها من وظيفة غير مجدية.
حاليا.
لماذا هذا مفيد؟
لأنني الآن يمكنني استخدام هذا كديكور بيثون.
بمجرد أن نكتب حرف A أمام هذا سيقول ، مهلا ، هذا سيكون مصممًا ومصممًا.
طالما أننا نتبع بناء الجملة هذا الخاص بقبول وظيفة ، فيمكن استخدام وظيفة التجميع واستدعاء
الوظيفة وإرجاع وظيفة الغلاف.
لذلك إذا قمت بعمل الديكور الخاص بي ، انظر كيف أنها زرقاء بالكامل.
الآن يمكن استخدام هذا المصمم بالفعل في الأعلى عند تحديد وظائفنا.
لذلك إذا أردنا استخدام مصمم الديكور الخاص بي في وظيفة hello ، فإننا نستخدمها على هذا النحو حتى عندما أتصل بـ hello
بعد ذلك في برنامجي.
أنا انقر فوق تشغيل.
انا حصلت.
مرحبًا؟
تمام.
أنا أعرف ما كنت أفكر.
أنت تعتقد أن هذا مضيعة للوقت يا أندريه.
لماذا كان علي أن أفعل كل ذلك؟
كان بإمكاني فعل هذا.
فقط حدد ملف.
مرحبًا.
وأنه كان عليه.
انا مرتبك للغاية.
حسنًا ، هذا هو الشيء.
ما فعلناه للتو مع المصمم.
لم يتغير شيء.
يعمل بالضبط كما هو متوقع.
ولكن ما يسمح لنا بالقيام به هو أنه يمكننا الآن إضافة وظائف إضافية.
تذكر كيف قلت أن الديكور هو وظيفة مثل مصمم الديكور الخاص بي الذي يلتف هنا وظيفة أخرى وهي الوظيفة
التي نمررها.
ويعززها.
فكيف يمكننا أن نعزز؟
مرحبًا؟
حسنًا ، يمكننا فعل أي شيء بداخل هذه الدالة المغلفة.
على سبيل المثال ، يمكنني أن أقول طباعة ، وبعد ذلك سنقوم فقط بطباعة بعض النجوم هنا وربما نطبع.
مجموعة أخرى من النجوم هنا حتى عندما أسميها الجري.
فقاعة.
لقد عززنا للتو.
مرحبًا.
دور.
كم ذلك رائع؟
وهذا هو السبب في أن أدوات التزيين مفيدة بمجرد إضافة هذا السطر الواحد.
أنا قادر على تعزيز وظيفة بشكل كبير ، لذلك دعنا نقول إنني أنشأت وظيفة أخرى تسمى.
وداعا.
وستتم طباعة هذا الشراء.
أراك لاحقا.
عن طريق الاتصال هنا والنقر فوق تشغيل.
حسنًا ، لا شيء يتغير.
ولكن إذا أردت تعزيزه بشكل كبير ، تمامًا مثل.
مرحبًا.
كل ما علي فعله هو نسخ مصمم الديكور واستخدامه هنا أيضًا.
لذلك إذا قمت بتشغيله.
هناك نذهب.
لقد عززنا شراءنا بشكل كبير.
هذه هي قوة المصممين.
بمجرد استخدام بناء الجملة هذا ، يمكنني إضافة وظائف إضافية إلى وظائف أخرى.
الآن أنا أعرف ما تفكر فيه.
وأنا أعلم أنني أواصل قول ذلك كثيرًا.
يبدو الأمر كما لو أنني أستطيع قراءة العقول ، لكن.
أنت تفكر في أن هذا كثير من السحر.
كيف يقوم مترجم بايثون بكل هذا؟
انها تبدو مثل.
حسنًا ، السحر ، أليس كذلك؟
تحت غطاء المحرك.
كل ما تفعله.
حسنا، اسمحوا لي أن تظهر لك.
بناءً على ما تعلمناه حتى الآن عن الوظائف ، لأنهم مواطنون من الدرجة الأولى.
الصحيح.
كل ما نفعله هو هذا حرفيا.
نحن نقول المتغير أ.
يساوي.
مرحبًا؟
ولف هذا مرحبا واتصل به مع مصمم الديكور الخاص بي.
لذلك أنا أقول مصمم الديكور الخاص بي.
وبعد ذلك أركض مثل هذا.
لنفترض أن هذا مرحبًا به.
حسنًا ، أنا فقط أديرها.
مثل ذلك.
لذلك إذا قمت بتشغيل هذا.
كل شيء لا يزال يعمل.
كل ما أفعله هو تغليف وظيفة الترحيب الخاصة بي.
مع مصمم الديكور الخاص بي وتخصيصه لمتغير.
لذلك إذا ذهبنا خطوة بخطوة ، نرى أن مصمم الديكور الخاص بي يتلقى وظيفة.
في حالتنا وظيفة hello.
ثم تقوم بإرجاع هذه الوظيفة المغلفة التي تحتوي على مرحبًا هنا.
لذا نعيد وظيفة الالتفاف هذه.
إذن ، مرحبًا بـ الآن تساوي هذه الوظيفة المغلفة ، ثم يتم استدعاء هذه الوظيفة المغلفة وماذا يتم استدعاؤها.
حسنًا ، يقوم بطباعة هذا ، ثم يقوم بتشغيل وظيفة hello ثم يقوم بطباعة هذا.
إنه نفس الشيء مثل فعل شيء كهذا.
نحن ببساطة نسميها مرة أخرى.
إذا قمت بتشغيل هذا.
إنها تعمل.
هذا يبدو غريباً ، أليس كذلك؟
لكن يجب أن يكون له معنى.
نحن نستدعي الوظيفة الأولى ، وتعيد الدالة الأولى دالة أخرى ، ثم نسمي دالة
الإرجاع التالية ، وهي دالة الالتفاف.
الآن السبب في أن المصممين مفيدون هو أنه بدلاً من القيام بذلك ويبدو بصراحة مربكًا ، يمكنني
فقط إضافة مصمم الديكور الخاص بي ولا نحتاج إلى القيام بكل هذا.
يتم لف مرحبتنا تلقائيًا بواسطة مصمم الديكور الخاص بي ، ولكن هذا هو ما يفعله المشهد الفني بشكل أساسي.
نرى؟
لا شيء سحري حيال ذلك.
حاليا.
فى الحال.
هذا جميل ، لكنني أراهن أنك ما زلت تتساءل عن سبب فائدة المصممين.
لذلك من أجل إنهاء فهمنا لمصممي الديكور ، دعنا نأخذ قسطًا من الراحة وسأراكم في الفيديو
التالي.