فهم دالة globals() للتعامل مع المتغيرات العامة في Python

تمت الكتابة بواسطة: عبد الحكيم

تارخ آخر تحديث: 26 ديسمبر 2024

محتوى المقال

فهم دالة globals() للتعامل مع المتغيرات العامة في Python

في Python، تُستخدم دالة globals() للحصول على قاموس يحتوي على جميع المتغيرات العامة (global variables) المُعرفة في نطاق البرنامج. يوفر هذا القاموس مرونة كبيرة في التعامل مع المتغيرات العامة بشكل ديناميكي، مما يسمح لك بقراءة أو تعديل هذه المتغيرات أثناء وقت التشغيل. في هذا المقال، سنتناول كيفية استخدام دالة globals()، وسنوضح أهميتها مع تقديم أمثلة عملية لشرح كيفية التعامل مع المتغيرات العامة باستخدام هذا القاموس.

ما هي دالة globals()؟

دالة globals() هي دالة مدمجة في Python تُرجع قاموسًا يحتوي على جميع المتغيرات العامة في نطاق البرنامج الحالي. يمكن اعتبار القاموس الذي تُرجعه globals() كنوع من الهيكل الذي يحتوي على أسماء المتغيرات العامة كـ "مفاتيح" (keys)، وقيم هذه المتغيرات كـ "قيم" (values).

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

الصيغة العامة لدالة globals()

globals()

لا تتطلب دالة globals() أي مدخلات، وتقوم ببساطة بإرجاع قاموس يحتوي على جميع المتغيرات العامة الحالية.

كيفية استخدام globals() للوصول إلى المتغيرات العامة

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

مثال: الوصول إلى المتغيرات العامة باستخدام globals()


# تعريف متغيرات عامة
x = 10
y = 20

# طباعة جميع المتغيرات العامة
print(globals())

# الوصول إلى متغير معين من القاموس العالمي
x_value = globals()["x"]
print("قيمة x:", x_value) # الناتج: قيمة x: 10

في هذا المثال، نقوم بتعريف المتغيرات العامة x وy، ثم نستخدم globals() لعرض جميع المتغيرات العامة. كما نستخدم الدالة للوصول إلى قيمة المتغير x بشكل مباشر من القاموس.

إضافة وتعديل المتغيرات العامة باستخدام globals()

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

مثال: تعديل المتغيرات العامة باستخدام globals()


x = 10

# تعديل قيمة المتغير x
globals()["x"] = 50
print("قيمة x بعد التعديل:", x) # الناتج: قيمة x بعد التعديل: 50

# إضافة متغير جديد إلى القاموس العالمي
globals()["z"] = 100
print("قيمة المتغير z:", z) # الناتج: قيمة المتغير z: 100

في هذا المثال، نقوم بتعديل قيمة المتغير x باستخدام globals()، حيث قمنا بتغيير قيمته من 10 إلى 50. كما قمنا بإضافة متغير جديد z إلى القاموس العالمي وإعطائه قيمة 100.

استخدام globals() في الدوال

عندما تتعامل مع دوال في Python، فإن المتغيرات المُعرفة داخل الدوال تكون محلية (local) ولا يمكن الوصول إليها باستخدام globals(). لكن المتغيرات العامة التي تُعرف خارج الدوال يمكن الوصول إليها داخل الدالة باستخدام globals().

مثال: استخدام globals() للوصول إلى المتغيرات العامة داخل الدوال


x = 20 # متغير عام

def print_global_x():
    x_value = globals()["x"]
    print("قيمة x العامة داخل الدالة:", x_value)

print_global_x() # الناتج: قيمة x العامة داخل الدالة: 20

في هذا المثال، يتم تعريف المتغير x كمُتغير عام خارج الدالة. داخل الدالة print_global_x()، نستخدم globals() للوصول إلى قيمة x وطباعتها.

فائدة globals() في البرامج الكبيرة

في البرامج الكبيرة التي تحتوي على متغيرات كثيرة أو التي تعتمد على تحميل وتحديث البيانات بشكل ديناميكي، قد يكون استخدام globals() مفيدًا للوصول إلى المتغيرات العامة أو تحديثها بشكل مرن. كما أنها تُستخدم غالبًا في الأنظمة التي تحتاج إلى تنفيذ كود ديناميكي مثل أنظمة الـ eval() وexec()، حيث تحتاج إلى التحكم في المتغيرات العامة بناءً على سياقات متغيرة.

مثال عملي: استخدام globals() لتحديث بيانات المستخدمين


# تعريف بعض المتغيرات العامة للمستخدم
user_name = "أحمد"
user_age = 25

def update_user_data(data):
    for key, value in data.items():
        globals()[key] = value

new_data = {"user_name": "محمد", "user_age": 30}
update_user_data(new_data)

# طباعة القيم المحدثة
print("الاسم الجديد:", user_name) # الناتج: الاسم الجديد: محمد
print("العمر الجديد:", user_age) # الناتج: العمر الجديد: 30

في هذا المثال العملي، نقوم بتعريف بعض المتغيرات العامة التي تمثل بيانات المستخدم مثل user_name وuser_age. ثم نستخدم دالة update_user_data() لتحديث هذه البيانات ديناميكيًا باستخدام قاموس يحتوي على البيانات الجديدة. بعد تحديث القيم، نقوم بطباعتها للتأكد من نجاح العملية.

التعامل بحذر مع globals()

رغم أن دالة globals() توفر لك مرونة كبيرة في التعامل مع المتغيرات العامة، إلا أنه يجب التعامل معها بحذر. تعديل المتغيرات العامة بشكل غير مدروس قد يؤدي إلى أخطاء يصعب تتبعها، خاصةً في البرامج الكبيرة. لذلك، يُفضل عدم الاعتماد على تعديل المتغيرات العامة بشكل عشوائي إلا إذا كان لديك سبب وجيه لذلك.

الخلاصة

دالة globals() في Python هي أداة قوية ومرنة تُستخدم للوصول إلى المتغيرات العامة وتعديلها أو حتى إضافة متغيرات جديدة إليها أثناء تشغيل البرنامج. يمكن استخدام globals() في العديد من السيناريوهات العملية، مثل تحديث البيانات بشكل ديناميكي أو تنفيذ تعليمات برمجية تعتمد على المتغيرات العامة. ولكن، يجب استخدامها بحذر لضمان الحفاظ على هيكل الكود وثباته.

طور مهاراتك: مقالات يجب قراءتها في البرمجة