عند العمل مع بايثون ، غالبا ما يكون من الضروري الحصول على قيمة متغير تم تعريفه في دالة. ولكن كيف نفعل ذلك? في هذه المقالة ، سنلقي نظرة على بعض الطرق البسيطة التي ستساعدك في الوصول إلى متغير من دالة.
الطريقة الأولى هي استخدام مشغل عالمي. إذا كنت تريد الوصول إلى متغير من دالة ، فيمكنك إعلانه عالميا باستخدام الكلمة الأساسية"عالمي". بعد ذلك ، يمكنك استخدام هذا المتغير في أجزاء أخرى من البرنامج.
ملاحظة: استخدام المتغيرات العالمية ليس دائما ممارسة برمجة جيدة ، لأنها يمكن أن تسبب أخطاء وصعوبات غير متوقعة في الحفاظ على التعليمات البرمجية. لذلك ، يجدر استخدام هذه الطريقة بحذر.
الطريقة الثانية هي استخدام قيمة الإرجاع للدالة. إذا كنت بحاجة إلى الحصول على نتيجة الحسابات من دالة ، فيمكنك إعادتها باستخدام الكلمة الأساسية "إرجاع". بعد ذلك ، يمكنك حفظ قيمة النتيجة في متغير واستخدامها حسب تقديرك.
الطريقة الثالثة هي استخدام وسيطات الوظيفة. إذا كنت بحاجة إلى تمرير قيمة متغير من دالة ، فيمكنك الإعلان عنها في وسيطات الوظيفة. ثم يمكنك تمرير قيمة هذا المتغير عند استدعاء الدالة واستخدامها داخل الدالة. بعد استدعاء الوظيفة ، ستتمكن من الحصول على قيمة المتغير الذي تم استلامه داخل الوظيفة.
- باستخدام بيان الإرجاع
- استخدام المتغيرات العالمية
- تمرير متغير كوسيطة
- باستخدام أسلوب البرمجة الوظيفية
- باستخدام وحدة فونتولس
- سؤال وجواب
باستخدام بيان الإرجاع
يتم استخدام عامل الإرجاع في بايثون لإرجاع قيمة من دالة. عندما تصل الدالة إلى بيان الإرجاع ، فإنها تكمل تنفيذها وتعيد القيمة المحددة.
مثال على استخدام عامل الإرجاع:
الأرقام المضافة (أ ، ب):
العودة أ + ب
النتيجة = إضافة أرقام (5 ، 3)
طباعة (النتيجة) # المخرجات: 8
في هذا المثال ، تأخذ دالة الأرقام الإضافية وسيطتين أ و ب ، وتضيفهما معا ، وتعيد النتيجة باستخدام عامل الإرجاع.
يمكن أن تكون القيمة التي يتم إرجاعها بواسطة عامل الإرجاع من أي نوع بيانات ، بما في ذلك الأرقام والسلاسل والقوائم والقواميس وما إلى ذلك.
يمكن أيضا استخدام بيان الإرجاع دون تحديد قيمة. في هذه الحالة ، تكمل الوظيفة ببساطة تنفيذها.
مثال على استخدام عامل الإرجاع بدون قيمة:
ديف برينت_رسالة():
طباعة ("مرحبا العالم!")
العودة
طباعة الرسالة () # المخرجات: مرحبا ، العالم!
في هذا المثال ، تقوم وظيفة الرسالة المطبوعة بإخراج الرسالة " مرحبا ، العالم!"باستخدام وظيفة الطباعة ويكمل تنفيذه دون إرجاع قيمة.
يتيح لك استخدام عامل الإرجاع الحصول على نتيجة الوظيفة واستخدامها في عمليات حسابية أو عمليات أخرى.
استخدام المتغيرات العالمية
في بايثون ، يمكن استخدام المتغيرات العالمية داخل الوظائف إذا تم الإعلان عنها بالبادئة العالمية. يسمح هذا للوظيفة بالوصول إلى المتغيرات المحددة خارج الوظيفة.
لاستخدام متغير عمومي داخل دالة ، اتبع الخطوات التالية:
- قم بتعريف المتغير على أنه عالمي باستخدام الكلمة الأساسية العامة قبل اسمه.
- قم بتعيين قيمة لمتغير داخل دالة.
- استخدم متغيرا داخل دالة.
دعونا ننظر إلى مثال:
الأسطوانات = 10 # متغير عالمي
ديف برينت_نوم():
الأسطوانات العالمية # إعلان المتغير على أنه عالمي
الأسطوانات + = 5 # تغيير قيمة متغير عمومي
طباعة (الأسطوانات) # طباعة قيمة المتغير العالمي
رقم الطباعة () # الإخراج : 15
في هذا المثال ، لدينا عدد متغير عمومي بقيمة 10. داخل دالة الطباعة ، نعلن أن المتغير عالمي باستخدام الأسطوانات العالمية ونزيد قيمته بمقدار 5. ثم نقوم بطباعة قيمة هذا المتغير ، والتي ستكون 15.
يمكن أن يكون استخدام المتغيرات العالمية مناسبا في الحالات التي يكون فيها من الضروري استخدام المتغيرات في وظائف مختلفة أو وظائف خارجية. ومع ذلك ، يمكن أن تكون أقل قابلية للتنبؤ ويمكن أن تؤدي إلى مشاكل في الكود إذا لم يتم استخدامها بعناية. لذلك ، قبل استخدام المتغيرات العالمية ، يجدر النظر بعناية في ضرورتها والحلول الممكنة للمشكلة دون استخدام المتغيرات العالمية.
تمرير متغير كوسيطة
عندما تحتاج إلى تمرير متغير من دالة إلى أخرى ، يمكنك استخدام تمرير هذا المتغير كوسيطة للدالة. تسمح لك هذه الطريقة بتمرير قيمة المتغير إلى وظيفة أخرى ، حيث يمكن استخدامه لتنفيذ إجراءات معينة أو إرجاع نتيجة.
مثال الاستخدام:
صفر حساب المجموع (أ ، ب):
العودة أ + ب
ديف برينت_النتيجة (النتيجة):
طباعة ("المجموع يساوي:" ، النتيجة)
# استدعاء الدالة حساب_المجموع وتمريرها القيم 10 و 20.
# نحفظ نتيجة تنفيذ الوظيفة في متغير مجموع النتائج.
مجموع الناتج = حساب المجموع(10 ، 20)
# استدعاء دالة نتيجة الطباعة وتمريرها قيمة متغير نتيجة المجموع.
طباعة النتيجة (مجموع النتيجة)
، والتي تأخذ وسيطة واحدة وتخرجها إلى الشاشة.
. نتيجة لذلك ، سيتم عرض عبارة "المبلغ يساوي: 30" على الشاشة.
وتستخدم لعرض النتيجة على الشاشة. وبالتالي ، فإن تمرير متغير كوسيطة يسمح لك باستخدام قيم المتغيرات بشكل فعال في وظائف ووحدات مختلفة من البرنامج.
باستخدام أسلوب البرمجة الوظيفية
أسلوب البرمجة الوظيفية هو نهج لكتابة التعليمات البرمجية على أساس استخدام الوظائف باعتبارها لبنة البناء الرئيسية للبرنامج. إنه يعني عدم وجود حالات قابلة للتغيير ويقوم بإجراء العمليات الحسابية عن طريق استدعاء الوظائف ذات المعلمات المحددة. في بيثون ، يمكنك أيضا استخدام أسلوب البرمجة الوظيفية لرمز أكثر أناقة ومفهومة.
فيما يلي بعض الطرق لاستخدام أسلوب البرمجة الوظيفية في بايثون:
- يقبل دالة وتسلسل كمعلمات ، ويطبق هذه الوظيفة على كل عنصر من عناصر التسلسل ، ويعيد تسلسلا جديدا مع النتائج.
- باستخدام وظائف مجهولة (وظائف لامدا). الوظائف المجهولة هي وظائف بدون اسم يمكن تعريفها واستخدامها مباشرة عند الحاجة إليها. على سبيل المثال ، يمكنك استخدام وظيفة لامدا لتحديد عملية بسيطة ليتم تنفيذها على كل عنصر القائمة.
- باستخدام تعبيرات القائمة. تعبيرات القائمة هي بنيات بيثون تسمح لك بإنشاء قوائم باستخدام بناء جملة مضغوط ومعبر. تسمح لك بإنشاء قوائم جديدة من خلال تطبيق العمليات والوظائف على كل عنصر من عناصر القائمة الأصلية.
يمكن لأسلوب البرمجة الوظيفية تبسيط الكود بشكل كبير وجعله أكثر قابلية للفهم والوحدات. كما أنه يساعد على فصل وظائف نقية من التعليمات البرمجية حتمية ويبسط التصحيح واختبار البرنامج. بالإضافة إلى ذلك ، يمكن لأسلوب البرمجة الوظيفية تحسين أداء التعليمات البرمجية الخاصة بك عن طريق السماح لك باستخدام الوظائف المحسنة وهياكل البيانات.
| أمثلة |
|---|
# باستخدام تعبير القائمة
أرقام غريبة = [س ل س بالأرقام إذا س ٪ 2 != 0]
توضح الأمثلة أدناه كيف يمكن استخدام أسلوب البرمجة الوظيفية لإجراء العمليات على قائمة الأرقام. في جميع الأمثلة الثلاثة ، أداة مفيدة هي الوظائف والعمليات التي يتم تطبيقها على كل عنصر من عناصر القائمة ، بدلا من التكرار صراحة على العناصر.
بغض النظر عن نمط البرمجة الذي تختاره ، يمكن أن يكون النمط الوظيفي إضافة مفيدة إلى صندوق الأدوات الخاص بك. انها تسمح لك لكتابة رمز أكثر إحكاما ومعبرة ، والتي يمكن أن تحسن بشكل كبير من أداء وقراءة البرنامج الخاص بك.
باستخدام وحدة فونتولس
يتم تضمين وحدة فونتولس في مكتبة بايثون القياسية ويوفر وظائف مريحة للعمل مع وظائف أعلى ترتيب.
واحدة من هذه الوظائف جزئية. تتيح لك هذه الوظيفة إنشاء وظيفة جديدة ، والتي ستكون نسخة مطبقة جزئيا من الوظيفة الأصلية مع الوسائط المحددة.
مثال:
من فونتولس استيراد جزئي
مواطنه تحية (تحية, اسم):
العودة و"{تحية} ، {اسم}!"
مرحبا = جزئي (تحية، "مرحبا")
طباعة (مرحبا ("أليس")) # الخلاصة: مرحبا ، أليس!
طباعة (مرحبا ("بوب")) # الخلاصة: مرحبا ، بوب!
في المثال ، نقوم بإنشاء وظيفة مرحبا جديدة ، وهي نسخة مطبقة جزئيا من وظيفة الترحيب مع وسيطة "مرحبا". عند استدعاء وظيفة مرحبا ، ونحن تمرير وسيطة واحدة فقط-الاسم ، وقيمة "مرحبا" هو مسبقا بالفعل.
وظيفة أخرى مفيدة من وحدة فونتولس هو لرو_كاش. تتيح لك هذه الوظيفة تخزين نتائج تنفيذ الوظيفة مؤقتا واستخدامها عند استدعاء الوظيفة مرة أخرى بنفس الوسائط.
مثال:
من فونتولس استيراد لرو_كاش
@لرو_كاش (ماكس سيزي=لا شيء)
مواطنه فيب (ن):
إذا ن < = 1: