في البرمجة ، وخاصة في بايثون ، المتغيرات هي واحدة من الأدوات الرئيسية لتخزين البيانات. في بعض الحالات ، قد يكون من الضروري الوصول إلى متغير معلن في وظيفة واحدة من وظيفة أخرى. لحسن الحظ ، توفر بايثون عدة طرق بسيطة للقيام بذلك.
الطريقة الأولى هي استخدام المتغيرات العالمية. في بيثون ، يمكنك إعلان متغير عالمي بحيث يصبح الوصول إليها من أي وظيفة. للقيام بذلك ، استخدم الكلمة الأساسية العامة قبل الإعلان عن المتغير. ومع ذلك ، يجب أن تكون حذرا عند استخدام المتغيرات العامة ، لأن هذا يمكن أن يؤدي إلى مشاكل في سهولة القراءة ودعم التعليمات البرمجية.
الطريقة الثانية هي تمرير متغير كمعلمة دالة. يمكنك تمرير متغير من وظيفة إلى أخرى عن طريق استدعاء الدالة الثانية وتمريرها قيمة المتغير كوسيطة. يتيح لك ذلك الوصول إلى متغير من وظيفة داخلية دون جعله عالميا. يعتبر هذا النهج أكثر أمانا ويوصى باستخدامه بدلا من استخدام المتغيرات العالمية.
الطريقة الثالثة هي استخدام الوظائف المتداخلة. في بيثون ، يمكنك إعلان وظيفة داخل وظيفة أخرى. الوظيفة الداخلية لديها حق الوصول إلى جميع متغيرات الوظيفة الخارجية ويمكنها استخدام قيمها. وبالتالي ، من الممكن تمرير متغير إلى دالة خارجية إلى دالة داخلية والوصول إليه داخل دالة متداخلة.
- تعلم كيفية الوصول إلى متغير من وظيفة أخرى في بايثون
- تمرير متغير كوسيطة إلى دالة
- مثال على استخدام الوسائط لتمرير متغير إلى دالة أخرى
- استخدام المتغيرات العالمية
- كيف يسمح لك استخدام المتغيرات العالمية بالوصول إليها من وظائف مختلفة
- باستخدام قيمة الإرجاع للدالة
- كيف يمكن استخدام قيمة الإرجاع لدالة للوصول إلى متغير من دالة أخرى
- باستخدام مساحة اسم الوحدة النمطية
- كيف يمكن استخدام متغير في وحدة نمطية في وظائف أخرى
- استخدام سمات الكائن
- سؤال وجواب
تعلم كيفية الوصول إلى متغير من وظيفة أخرى في بايثون
عند تطوير برامج بايثون ، غالبا ما يكون من الضروري الوصول إلى المتغيرات المعلنة في وظائف أخرى. في هذا القسم ، سننظر في ثلاث طرق بسيطة تسمح لك بالوصول إلى متغير من وظيفة أخرى:
- باستخدام قيمة الإرجاع للدالة
مواطنه أولا_الوظيفة():
بلدي المتغير = " مرحبا ، العالم!"
عودة بلدي متغير
# استدعاء الدالة الثانية
الوظيفة الثانية()
في هذا القسم ، ناقشنا ثلاث طرق بسيطة للوصول إلى متغير من وظيفة أخرى في بايثون: تمرير متغير كوسيطة إلى دالة ، باستخدام المتغيرات العالمية ، واستخدام قيمة الإرجاع للدالة. في كل حالة ، يمكنك الوصول إلى قيمة متغير من وظيفة أخرى واستخدامها لأغراضك الخاصة.
تمرير متغير كوسيطة إلى دالة
هناك عدة طرق لتمرير متغير كوسيطة إلى وظيفة في بايثون. يسمح هذا للوظيفة بالوصول إلى قيم المتغيرات التي تم تعريفها في مكان آخر من البرنامج.
تتمثل إحدى طرق تمرير متغير كوسيطة في تمرير قيمته بين قوسين عند استدعاء دالة. في هذه الحالة ، ستتمكن الوظيفة من الوصول إلى القيمة التي تم تمريرها للمتغير ، والتي يمكن استخدامها داخل الوظيفة.
طباعة_متغير
، الذي يأخذ الحجة
5
متغير
y
واستدعاء وظيفة
طباعة_متغير
مع
حجة ص
. قيمة المتغير
y
دون تحديد قيمة ، ولكن فقط اسم المتغير. نتيجة لذلك ، سيتم عرض الشاشة:
قيمة المتغير س: 5
الطريقة الثالثة لتمرير متغير كوسيطة هي استخدام متغير عمومي. يتم الإعلان عن متغير عالمي خارج جميع الوظائف ويمكن استخدامه في أي منها. إذا أردنا تمرير متغير عمومي كوسيطة ، فنحن بحاجة إلى تحديد كلمة رئيسية
العالمية
قبل استخدام متغير داخل دالة.
النظر في المثال التالي:
س = 10
ديف برينت_جلوبال_متغير():
جلوبال إكس
طباعة ("قيمة المتغير العالمي س:" ، س)
طباعة_عالمي_متغير()
في هذا المثال ، حددنا المتغير العمومي
x
مع القيمة
10
. ثم حددنا الوظيفة
طباعة_عالمي_متغير
، داخل الذي استخدمنا الكلمة الرئيسية
العالمية
للوصول إلى المتغير العالمي
x
. نتيجة لذلك ، سيتم عرض الشاشة:
قيمة المتغير العالمي س: 10
وبالتالي ، فقد نظرنا في ثلاث طرق بسيطة لتمرير متغير كوسيطة إلى دالة في بايثون: تمرير قيمة المتغير ، وتمرير المتغير نفسه ، واستخدام متغير عالمي مع كلمة رئيسية
العالمية
.
مثال على استخدام الوسائط لتمرير متغير إلى دالة أخرى
تتمثل إحدى طرق تمرير متغير من دالة إلى أخرى في استخدام الوسائط. النظر في مثال:
مواطنه مرحبا (اسم):
رسالة = و " مرحبا ، {اسم}!"
رسالة العودة
ديف برينت _ مرحبا (رسالة):
طباعة (رسالة)
الاسم _ الإدخال = الإدخال ("أدخل اسمك:")
مرحبا _ رسالة = مرحبا (الاسم _ الإدخال)
طباعة مرحبا (مرحبا رسالة)
في هذا المثال ، يتم الإعلان عن وظيفة مرحبا أولا ، والتي تأخذ وسيطة اسم واحدة. يتم إنشاء متغير رسالة داخل الوظيفة ، حيث تتم كتابة سلسلة تحية باستخدام متغير الاسم. تقوم الدالة بإرجاع هذه السلسلة.
ثم يتم الإعلان عن وظيفة الطباعة ، والتي تأخذ وسيطة رسالة واحدة. داخل الوظيفة ، يتم عرض محتويات متغير الرسالة ببساطة على الشاشة.
بعد ذلك ، يطلب من المستخدم إدخال اسمه ، وبعد ذلك يتم تخزين الاسم في الاسم _ متغير الإدخال. ثم يتم استدعاء وظيفة مرحبا مع وسيطة إدخال الاسم ، ويتم تخزين النتيجة في متغير رسالة مرحبا. بعد ذلك ، يتم استدعاء وظيفة الطباعة مع وسيطة الرسالة.
نتيجة لذلك ، يتم عرض تحية بالاسم الذي أدخله المستخدم على الشاشة.
استخدام المتغيرات العالمية
في بايثون ، يمكن استخدام المتغيرات العالمية داخل الوظائف إذا تم الإعلان عنها باستخدام الكلمة الرئيسية العالمية.
يتم تعريف المتغيرات العالمية خارج جميع الوظائف ويمكن استخدامها في أي جزء من البرنامج.
مثال على استخدام متغير عمومي:
الحيوان = "القط" # متغير عالمي
طباعة مواطن_حيوان():
طباعة ("حيواني المفضل:" + حيوان) # الرجوع إلى المتغير العالمي
طباعة_حيوان()
في هذا المثال ، يتم تعريف الحيوان المتغير العالمي خارج وظيفة الطباعة () ويمكن استخدامه بداخله.
عند تشغيل هذا الرمز ، سيتم عرض الرسالة: "حيواني المفضل هو قطة."
ومع ذلك ، لتغيير قيمة متغير عمومي من داخل دالة ، يجب أن تعلن صراحة المتغير باستخدام الكلمة الأساسية العالمية.
مثال على تغيير قيمة متغير عمومي:
الحيوان = "القط" # متغير عالمي
تغيير مواطن_حيوان():
الحيوان العالمي # إعلان المتغير على أنه عالمي
الحيوان = "الكلب" # تغيير قيمة المتغير العالمي
التغيير_حيوان()
طباعة (الحيوان) # "الكلب" سيكون الإخراج
في هذا المثال ، من خلال إعلان المتغير الحيواني داخل وظيفة التغيير() على أنه عالمي ، يمكننا تغيير قيمته داخل الوظيفة وسيؤثر هذا التغيير على المتغير العام.
لاستخدام المتغيرات العالمية من وظائف مختلفة ، تأكد من تحديد المتغيرات خارج جميع الوظائف ، عادة في الجزء الرئيسي من البرنامج. ثم ، داخل كل وظيفة ، يمكنك الوصول إلى هذه المتغيرات باستخدام الكلمة الرئيسية العالمية.
على سبيل المثال ، ضع في اعتبارك الكود التالي:
"'بايثون
هنتر = 0
مواطنه الزيادة():
العداد العالمي
عداد + = 1
الزيادة()
التناقص()
طباعة العداد()
"`
في هذا الرمز ، لدينا عداد متغير عمومي ، يتم تهيئته إلى 0. ثم نحدد ثلاث وظائف: الزيادة () ، النقصان() وطباعة العداد(). تعمل وظائف الزيادة() والنقصان() على زيادة وتقليل قيمة العداد ، على التوالي ، وتخرج وظيفة العداد() قيمة العداد الحالية.
نسمي وظائف الزيادة() والزيادة() والإنقاص() في الجزء الرئيسي من البرنامج ، ثم نسمي وظيفة الطباعة () لرؤية القيمة الحالية للعداد. النتيجة المتوقعة هي قيمة 1.
باستخدام الكلمة الرئيسية العالمية داخل كل وظيفة ، يمكننا الوصول إلى متغير العداد العالمي وتغيير قيمه. بدون استخدام هذه الكلمة الأساسية ، ستؤدي محاولة تغيير قيمة المتغير إلى إنشاء متغير محلي جديد بنفس اسم المتغير العام.
وبالتالي ، يتيح لك استخدام المتغيرات العالمية الوصول إليها من وظائف مختلفة دون الحاجة إلى تمريرها كمعلمات. ومع ذلك ، يجب أن تكون حذرا عند استخدام المتغيرات العالمية ، لأنها يمكن أن تجعل من الصعب تتبع حالة البرنامج وتؤدي إلى أخطاء.
باستخدام قيمة الإرجاع للدالة
تتمثل إحدى طرق الوصول إلى المتغيرات المعلنة في دالة أخرى في استخدام قيمة الإرجاع للدالة. في بايثون ، لا يمكن للوظائف تنفيذ إجراءات معينة فحسب ، بل يمكنها أيضا إرجاع نتيجة عملها.
"`
في هذا المثال ، وظيفة حساب المجموع
يأخذ حجتين
a
و
b
، يؤدي إضافة ، وإرجاع النتيجة. يمكن تخزين القيمة التي تم إرجاعها بواسطة الوظيفة في متغير ثم استخدامها حسب الحاجة.
يتيح لك هذا الأسلوب نقل البيانات من وظيفة إلى أخرى. على سبيل المثال ، يمكنك استدعاء وظيفة واحدة تقوم بإرجاع نتيجة وتمرير هذه النتيجة كوسيطة إلى وظيفة أخرى:
"'بايثون
مواطنه الحصول على_الاسم():
عودة"أليس"
مواطنه تحية (اسم):
طباعة (و " مرحبا ، {اسم}!")
الاسم = الحصول على الاسم()
| تحية (الاسم) # ستطبع "مرحبا أليس!" | "` |
|---|---|
|
|
يقبل الحجة
الاسم
وتخرج تحية بهذا الاسم.
يتيح لك استخدام قيمة الإرجاع للوظيفة تنظيم التعليمات البرمجية بشكل أكثر مرونة وكفاءة ونقل البيانات بين الوظائف. هذا مفيد بشكل خاص عند العمل مع البرامج الكبيرة حيث تؤدي الوظائف المختلفة مهام محددة وتحتاج نتائجها إلى المعالجة أو استخدامها في أجزاء أخرى من البرنامج.
كيف يمكن استخدام قيمة الإرجاع لدالة للوصول إلى متغير من دالة أخرىبايثون لديها عدة طرق للوصول إلى المتغيرات من وظائف أخرى. إحدى هذه الطرق هي استخدام قيمة الإرجاع للدالة.
عندما يتم استدعاء دالة ، يمكنها إرجاع أي قيمة باستخدام الكلمة الرئيسية المرتجعة. يمكن تعيين قيمة الإرجاع لمتغير واستخدامها في وظيفة أخرى.مثال:
مواطنه الحصول على القيمة():
عودة 42
ديف برينت_القيمة():
القيمة = الحصول على القيمة()طباعة (قيمة)
طباعة القيمة ()
في هذا المثال ، تقوم وظيفة الحصول على القيمة() بإرجاع القيمة 42. في وظيفة الطباعة القيمة () ، نسمي الحصول على القيمة () وتعيين قيمة الإرجاع لمتغير القيمة. ثم نقوم بطباعة قيمة متغير القيمة على الشاشة باستخدام وظيفة الطباعة ().
ستكون نتيجة تنفيذ هذا الرمز:
42
- مزايا استخدام قيمة إرجاع الوظيفة:
- يسمح لك بنقل البيانات بين الوظائف
- يسهل تصحيح أخطاء البرنامج
مساوئ استخدام قيمة إرجاع الوظيفة:
يبسط هيكل الكود
يحسن قراءة التعليمات البرمجية
يمكن أن يؤدي إلى أخطاء إذا تم استخدامه بشكل غير صحيح.
قد يعقد فهم الكود إذا لم يتم توثيق قيمة الإرجاع.
يعد استخدام قيمة الإرجاع لوظيفة للوصول إلى متغير من وظيفة أخرى نهجا مناسبا وشائعا في برمجة بايثون.
باستخدام مساحة اسم الوحدة النمطية
عند استيراد وحدة نمطية إلى البرنامج الخاص بك ، يمكنك إنشاء مساحة اسم منفصلة تحتوي على كافة المتغيرات والوظائف والكائنات من تلك الوحدة النمطية. يؤدي هذا إلى تجنب تعارضات الأسماء إذا كان برنامجك يحتوي بالفعل على متغير بنفس الاسم.
لاستخدام متغير من وظيفة أخرى في وحدة نمطية ، تحتاج إلى استيراد هذه الوظيفة من الوحدة النمطية أولا:
من اسم الوحدة النمطية استيراد الدالة
بعد ذلك ، يمكنك الوصول إلى المتغيرات من هذه الوظيفة باستخدام بناء الجملة:
اسم الوظيفة.اسم_متغير
على سبيل المثال:
من الرياضيات استيراد بي
طباعة (بي) # إخراج قيمة الرقم from من وحدة الرياضيات
يمكنك أيضا استيراد جميع المتغيرات والوظائف والكائنات من الوحدة باستخدام رمز'*':
من استيراد اسم الوحدة النمطية *
ومع ذلك ، فهذه ممارسة غير مرغوب فيها ، حيث يمكن أن تؤدي إلى تعارض الأسماء بين المتغيرات والمتغيرات من الوحدة النمطية المستوردة. من الأفضل تحديد العناصر التي يجب استيرادها صراحة.
يعد استخدام مساحة اسم الوحدة طريقة ملائمة لتنظيم التعليمات البرمجية وتجنب تعارضات التسمية. بمعرفة كيفية استيراد الوحدات النمطية بشكل صحيح ، يمكنك بسهولة الوصول إلى المتغيرات والوظائف والكائنات من وظائف أخرى في برنامجك.
كيف يمكن استخدام متغير في وحدة نمطية في وظائف أخرى
في بايثون ، يمكن استخدام متغير معلن في وحدة نمطية في وظائف أخرى لتلك الوحدة. يتيح لك ذلك نقل القيم بين الوظائف دون الحاجة إلى استخدام المتغيرات العامة.
هناك عدة طرق لاستخدام متغير في وظائف أخرى:
تمرير متغير كوسيطة إلى دالة
يمكنك تمرير متغير أعلن في وظيفة واحدة إلى وظيفة أخرى كوسيطة. يسمح هذا للوظيفة بالوصول إلى قيمة المتغير واستخدامه في الكود الخاص به.
إرجاع قيمة متغير من دالة
إذا كانت الدالة تحسب قيمة متغير ، يمكنك إرجاع هذه القيمة باستخدام عبارة الإرجاع. ثم يمكنك استخدام القيمة التي تم إرجاعها في وظيفة أخرى.
باستخدام متغير عمومي