‫مرحبًا بعودتك.
‫في هذا الفيديو أريد أن أتحدث عن مفهوم مهم وهو العودة.
‫إنها كلمة أساسية في Python سنراها كثيرًا عند العمل مع الوظائف.
‫لذلك دعونا نلقي نظرة.
‫إذا دعنا نقول أنني أريد إنشاء دالة تسمى sum ، والتي بالمناسبة ، موجودة بالفعل في Python ، لكننا
‫سنقوم بإنشاء دالة خاصة بنا وسأقول رقم واحد للرقم واحد.
‫والرقم اثنان ، حسنًا ، ستضيف دالة الجمع العدد واحد زائد عدد اثنين ، دالة جميلة وبسيطة.
‫الآن إذا قمت بتشغيل بعضها برقم أربعة وخمسة ، خمن ماذا سيحدث؟
‫أنا ذاهب إلى الركض.
‫ولا يحدث شيء ، وهو ما أعنيه ، قد لا يكون مفاجئًا لك لأننا لا نطبع أي شيء.
‫الصحيح.
‫ولكن ماذا لو قمت بتشغيل الطباعة هنا؟
‫حسنًا ، هذا التغيير.
‫دعونا نرى.
‫همم.
‫لم أحصل على شيء.
‫هل هذا ما توقعته؟
‫ولم نر أيا من قبل ، أليس كذلك؟
‫أعني ، تذكر عندما كانت لدينا قائمة ، دعنا نقول واحد ، اثنان ، ثلاثة ، ثم فعلنا شيئًا
‫مثل ذلك واضحًا.
‫في الضعف الجنسي لدينا.
‫أعطانا هذا السهم الصغير ولم يقل أي شيء.
‫وتحدثنا عن فكرة وجود شيء في القوائم مثل تغيير واضح للقائمة الفعلية ومسح كل شيء وإفراغ
‫القائمة ، لكنها لا تُرجع قائمة جديدة.
‫يقوم فقط بتعديل القائمة الحالية ، ولكن بدلاً من ذلك لا يُرجع إلينا أي شيء.
‫حسنًا ، الوظائف هي فقط من هذا القبيل.
‫يجب عليهم دائمًا إرجاع شيء ما ، وعندما لا يقوموا بإرجاع أي شيء مثل عدم وجود كلمة رئيسية للعودة هنا
‫، فإنه لا يُرجع شيئًا تلقائيًا.
‫لذلك إذا لم يكن لدينا شيء مثل العودة إلى هنا ، فلن يعيدنا شيئًا دائمًا.
‫ولكن إذا أضفنا العودة ، فسيظهر ذلك بمجرد وصولنا إلى السطر الثاني.
‫يا.
‫أريدك أن تخرج من هذه الوظيفة.
‫وعندما تخرج من هذه الوظيفة ، أريدك أن تعيد ما يعطينا هذا التعبير.
‫إذا قمت بالنقر فوق تشغيل.
‫أحصل على تسعة؟
‫إذا غيرنا هذا إلى عشرة زائد خمسة ، فسنحصل على 15.
‫وهذه قاعدة عامة جيدة للوظائف ، لأن الدوال يمكنها أن تفعل شيئين ، صحيح.
‫واحد ، يمكنه إرجاع شيء ما.
‫لذلك في نهاية الوظيفة ، أيا كان ، بعد تشغيل الوظيفة ، نرجع شيئًا إما لا شيء
‫أو نوعًا من القيمة ، نوعًا ما من نوع البيانات ، أو يمكن أن يكون لدينا وظيفة لا تُرجع
‫أي شيء ولكن ربما تعدل شيئا ما.
‫لذلك ، على سبيل المثال ، يمكنني الطباعة.
‫أهلاً.
‫وإذا كنت قد جريت هنا.
‫لا أرجع شيئًا لأنني لا أملك بيان الإرجاع هذا.
‫ومع ذلك ، فإن وظيفتي تقوم بتعديل شيء ما.
‫حسنًا ، مظهر هذا النص صحيح؟
‫يطبع مرحبا بالنسبة لنا.
‫لذا فإن الوظيفة إما أن تعدل شيئًا ما في برنامجنا أو تعيد شيئًا ما.
‫وهذا موضوع متقدم جدًا وسنناقشه لاحقًا عندما نتحدث عن البرمجة الوظيفية.
‫لكن القاعدة الأساسية الجيدة للوظائف هي أن هذه الوظيفة يجب أن تؤدي شيئًا واحدًا جيدًا حقًا.
‫وعادة يجب أن تعيد الدالة شيئًا ما.
‫الآن ، هذا لا يعني أن أي وظيفة ربما تقوم بأشياء متعددة أو أي وظيفة لا ترجع شيئًا
‫ما هي أمر سيء.
‫ولكن من الممارسات الجيدة بشكل عام أن تجعل الكود الخاص بك بسيطًا وقابل للقراءة بحيث يكون لديك هاتان القاعدتان.
‫على سبيل المثال ، هنا ، إذا كان لدي طباعة وإضافة ، حسنًا ، هذه الوظيفة تقوم بأشياء متعددة.
‫إنها مقلقة بشأن الطباعة وهي أيضًا مقلقة بشأن شيء ما.
‫والتعريف.
‫هذه الوظيفة تسمى المجموع.
‫أعني ، إذا لم أكن أعرف أو لم أر هذا وكل ما فعلته هو تشغيل البعض.
‫أعتقد أن الحصول على طباعة عالية سيكون مفاجئًا لأن الاسم لا يصف حقًا ما يفعله.
‫أعني ، أتوقع أن يتم تلخيص هذا.
‫لماذا برنامجي يقول مرحبا؟
‫لذلك نريد التأكد من أن وظيفتنا تؤدي شيئًا واحدًا وشيئًا واحدًا فقط بشكل جيد ، لأنه كما
‫سنرى لاحقًا ، يمكننا دمج وتشغيل وظائف مختلفة معًا.
‫ثم نريد أيضًا التأكد من أننا نعيد شيئًا ما لأن ما يمكننا فعله بهذه الطريقة هو أنه يمكننا
‫بالفعل تعيين هذه القيمة المرجعة إلى متغير.
‫على سبيل المثال ، يمكنني القول أن مجموع يساوي عشرة.
‫خمسة.
‫ولأن هذه الدالة تُرجع شيئًا ما وعندما تنتهي ، سيكون للتشغيل 15 قيمة.
‫هذا هو نفس ما نفعله هنا.
‫وهذا هو الجزء الرائع.
‫الآن يمكنني تشغيل ربما حوالي عشرة زائد المجموع.
‫الآن دعنا ننتقل إلى هذا واحدًا تلو الآخر.
‫أنا أحدد وظيفتي ، سيقول مترجم بايثون ، حسنًا ، أعرف ما هو البعض.
‫الآن قمت بتعريفه.
‫سأحتفظ به في الذاكرة.
‫سيستمر ، ويستمر حتى السطر السابع وسيقول ، مرحبًا ، أريد إجماليًا
‫متغيرًا وأريد أن يساوي هذا المتغير الكلي حوالي عشرة خمسة.
‫وقبل أن نخصص أي شيء لـ Total python ، سيقول المترجم بعضًا.
‫ما بعض مرة أخرى.
‫أوه ، أتذكر هنا أنه في ذاكرة OC في البعض سأعطيها الحجج العاشرة والخامسة.
‫لذلك سوف تقوم بتشغيل هذه الوظيفة.
‫بمجرد أن ننهي قوس الإغلاق هذا ، سننتقل إلى المجموع.
‫سيقول ، مهلا ، العدد واحد سيساوي عشرة ، العدد اثنين سيساوي خمسة.
‫ننتقل الآن إلى السطر الثاني وسيقول ، مرحبًا ، أريدك أن تضيف عشرة زائد خمسة لأنني أعرف ما هي هذه
‫المتغيرات.
‫وبعد ذلك بمجرد أن تنتهي من ذلك ويتحول إلى 15 ، أريدك أن تعود.
‫إذن ، مترجم بايثون ، أخيرًا ، عند الانتهاء من الاتصال ، سيقول البعض ، مهلا ، قم
‫بتعيين القيمة 15 إلى إجمالي المتغير ، ثم ينتقل إلى السطر التالي.
‫مرحبًا ، أريد طباعة شيء ما.
‫ماذا تريد ان تطبع؟
‫حسنًا ، أريد طباعة هذا.
‫سيقول ، مهلا ، ما هو بعض؟
‫أعرف ما هو البعض.
‫لدي في الذاكرة.
‫ثم مرة أخرى ، سيقول عشرة.
‫ومن ثم فإن الحجة التالية ستكون الكلية.
‫مرحبًا ، دعنا نكمل.
‫اسمحوا لي أن أذهب في الذاكرة واكتشف ، أوه ، إنها 15.
‫لذا فهو مثل قول 15.
‫وهذه هي قوة الوظائف ، أليس كذلك؟
‫أنا قادر على إعادة الأشياء وإسنادها إلى متغيرات واستدعائها على هذا النحو.
‫ويمكنني الاستمرار في تشغيلها إذا أردت القيام بذلك إذا كنت أرغب في جعل هذا الأمر أكثر بساطة ، يمكنني استخدام
‫بعضها بدلاً من الإجمالي هنا.
‫وانظر إلى ذلك.
‫الآن لدي كل شيء في سطر واحد وإذا قمت بالنقر فوق تشغيل.
‫ثانية.
‫لا يزال يعمل.
‫تمام.
‫لكن ماذا لو فعلنا شيئًا كهذا؟
‫ماذا لو قلت تحديد بعض ثم سأقول تحديد داخل هنا آخر.
‫الدالة ، وهذه الوظيفة تأخذ العدد الأول والعدد الثاني.
‫وهنا ، نعود أخيرًا ، رقم واحد.
‫ورقم اثنين.
‫همم.
‫دعونا نختبر هذا.
‫ماذا تعتقد سوف يحصل؟
‫حسنًا ، لنفترض أولًا أن الإجمالي يساوي حوالي عشرة زائد 20.
‫ثم سأقوم بطباعة المجموع.
‫إذا قمت بالنقر فوق تشغيل.
‫لم أحصل على شيء.
‫حاليا.
‫لماذا هذا؟
‫وهذا يجب أن يكون واضحًا لك ، لأنني هنا أقول ، مهلا ، أريدك أن تحدد البعض وماذا
‫سنفعل بالوظيفة؟
‫حسنًا ، سأقوم هنا بتعريف دالة أخرى ، لكن بيان الإرجاع هذا لا يعمل
‫بشكل صحيح.
‫لأن كل ما نقوم به داخل هذه الكتلة ، كتلة الشفرة هذه.
‫هل هذا الجزء.
‫نحن نحدد الوظيفة ، لكننا لا نستدعي دالة أخرى أبدًا.
‫لذا فإن هذا لا يُرجع شيئًا.
‫وفقدنا القدرة على استدعاء هذه الوظيفة بشكل جيد.
‫فكيف يمكننا حل هذا؟
‫طريقة واحدة هي العودة ، أليس كذلك؟
‫لذا في النهاية هنا ، علينا التأكد من أن المسافة البادئة صحيحة وسنقوم بإرجاع وظيفة
‫أخرى.
‫لذلك دعونا نضيف العودة ونرى ما يحدث هنا.
‫إذا قمت بالنقر فوق تشغيل.
‫حسنًا ، حصلت على هذه الوظيفة الآن.
‫إذن ، ستساوي Total هذه الدالة التي أعادناها ، وهي موجودة في الذاكرة.
‫تمام.
‫لكني لا أحصل على النتيجة التي أريدها.
‫الصحيح.
‫ولما ذلك؟
‫لان.
‫حسنًا ، نحن لا نسمي هذه الوظيفة.
‫إذن ، هناك عدة طرق يمكننا من خلالها القيام بذلك.
‫يمكننا إما إعطائها المعلمات أو الحجج هنا.
‫لنفترض إذن 1020 وإذا قمت بالنقر فوق تشغيل.
‫أحصل على 30 أو إذا أردنا الاحتفاظ بكل ما نقدمه هنا ، يمكنني ببساطة أن أقول وظيفة أخرى.
‫لذلك إذا أعطيناها رقم واحد ورقم اثنين وقمت بالنقر فوق تشغيل.
‫مهلا ، انظر إلى ذلك.
‫أحصل على 30.
‫الآن هذا الفيديو قد تضطر إلى مشاهدته مرارًا وتكرارًا لأنه يمد عقلك قليلاً.
‫ولكي أكون صادقًا ، هذه الوظيفة ليست جيدة جدًا لأنها جيدة ، إنها مربكة للغاية.
‫يجب أن تكون وظيفتك سهلة الفهم.
‫لذلك قد نرغب في تغيير هذا قليلاً ، ربما بدلاً من ذلك هنا باستخدام نفس أسماء المعلمات.
‫فقط لتوضيح ذلك.
‫ربما يمكننا أن نقول واحد واثنين.
‫ثم هنا نقوم بعمل واحد زائد واثنين لتوضيح أنه عندما نعود ، هذه الدالة الأخرى ، أستخدم المعلمتين
‫رقم واحد ورقم اثنين اللذان نسميهما هنا.
‫لأن تعريف الوظيفة هذا لا يهتم حقًا بماهية هذه الأشياء.
‫إنه يهتم فقط عندما يتم استدعاء وظيفة أخرى.
‫الآن ، إذا كنت بحاجة إلى إيقاف الفيديو مؤقتًا وإلقاء نظرة على هذا وربما التدرب على ذلك قليلاً
‫، فهذا مفهوم تمامًا.
‫لكني أردت أن أظهر لك قوة العودة.
‫يمكن أن يكون لديك وظائف متداخلة تمامًا كما تفعل مع الشرطية ، ولكن عليك أن تكون
‫حريصًا على أن وظيفتك إما ترجع شيئًا ما ، وإلا فلن ترجع شيئًا.
‫وفي معظم الأوقات ، سترغب في إرجاع شيء ما من دالة حتى نتمكن من القيام بشيء مثل هذا
‫، حيث نقوم بتعيينه إلى متغير حتى نتمكن من استخدامه لاحقًا في برامجنا.
‫سأراك في المرحلة التالية.
‫مع السلامة.
‫شيء أخير.
‫تخرج الكلمة الأساسية للعودة من الوظيفة تلقائيًا بحيث إذا أضفت جزءًا آخر من التعليمات البرمجية مثل الطباعة.
‫مرحبًا.
‫أو ربما أعود خمسة هنا.
‫ترى أنه لا يزال ساريًا.
‫ولكن إذا قمت بتشغيل هذا.
‫ما زلت أحصل على 30 لأن المترجم الفوري لا يمكنه أبدًا أن يضع السطر الخامس والسادس ، لأنه بمجرد أن
‫نعيد شيئًا ما من دالة ، فإنه يخرج من هذه الوظيفة.
‫وسبب عدم خروج هذا الجزء من الدالة هو أنه تذكر أننا نحدد داخل هذه
‫الدالة.
‫لذلك نحن في الواقع لا نشغل هذا الجزء.
‫نحن نقول فقط ، عندما نرى وظيفة أخرى تظهر في الكود الخاص بنا ، فإننا نعرف ما هي ، لكننا
‫لن نقوم بتشغيلها.
‫لذلك سيبدو هكذا.
‫وبمجرد أن يرى بيان الإرجاع ، عندما يتم استدعائه ، سيقول
‫، حسنًا ، سأخرج من هذه الوظيفة بهذه القيمة.
‫فقط القليل من الرؤساء.