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