"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية إنشاء إمكانية الوصول المتغير عبر الوحدات في بايثون: مشاركة المتغيرات دون مشاركة المثيلات؟

كيفية إنشاء إمكانية الوصول المتغير عبر الوحدات في بايثون: مشاركة المتغيرات دون مشاركة المثيلات؟

تم النشر بتاريخ 2024-11-08
تصفح:600

How to Establish Cross-Module Variable Accessibility in Python: Sharing Variables Without Sharing Instances?

إنشاء إمكانية الوصول المتغير عبر الوحدات

في بايثون، المتغير المناسب عبر الوحدات هو __debug__. ومع ذلك، قد يبدو إنشاء متغير مخصص بوظيفة مماثلة أمرًا صعبًا. تتعمق هذه المقالة في هذا الموضوع، وتستكشف طريقة لتحديد متغير مشترك عبر الوحدات مع الحفاظ على ثباته.

الحل: الاستفادة من المتغيرات العالمية على مستوى الوحدة

لإنشاء متغير عبر الوحدة دون مشاركة مثيل متغير مشترك، فكر في استخدام متغيرات عامة على مستوى الوحدة. يتم تعريف هذه المتغيرات وتعيينها داخل الوحدة النمطية وتصبح في متناول الوحدات النمطية الأخرى التي تستوردها. من خلال تعيين المتغير قبل استيراد الوحدات التابعة، يمكن إنشاء قيمة ثابتة في جميع أنحاء المشروع.

يرد مثال أدناه:

a.py:

var = 1

b.py:

import a
print(a.var)
import c
print(a.var)

c.py:

import a
a.var = 2

الاختبار:

$ python b.py
# Output
1
2

في هذا المثال، تم تعريف المتغير var في الوحدة a.py ويصبح قابلاً للوصول إلى الوحدة b.py عند استيراده. على الرغم من أن الوحدة c.py تغير قيمة var، إلا أن الوحدة b.py تحتفظ بقيمتها الأصلية.

تطبيق العالم الحقيقي

يوفر Django حالة استخدام عملية لـ المتغيرات المشتركة على مستوى الوحدة النمطية. تعد وحدة global_settings.py الخاصة بها بمثابة مثال حيث يتم عرض الإعدادات كسمات وحدة نمطية بدلاً من كائن مشترك واحد.

من خلال استخدام هذه التقنية، يمكن تحقيق مشاركة المتغيرات عبر الوحدات مع الحفاظ على سلامة المتغيرات وتبسيط كود الوحدة النمطية منظمة.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3