مقدمة
في الدرس السابق تعرفنا على التعامل مع الملفات (File Handling)، وكيف يمكن فتح الملفات وقراءتها وكتابتها وإضافة البيانات إليها.
لكن عند التعامل مع الموارد مثل الملفات، نحتاج أيضًا إلى التأكد من استخدامها وإغلاقها بطريقة صحيحة.
لهذا توفر Python مفهومًا مهمًا يسمى مدير السياق (Context Manager)، ومن أشهر طرق استخدامه جملة with.
ما هو مدير السياق؟
مدير السياق هو آلية تساعد على إدارة الموارد تلقائيًا.
فهو يحدد ما يحدث عند بدء استخدام المورد، وما يجب فعله عند الانتهاء منه.
وهذا يقلل من الحاجة إلى إدارة الموارد يدويًا.
استخدام with
تستخدم with بشكل شائع عند التعامل مع الملفات.
عند فتح ملف باستخدامها، تتولى Python إدارة الملف وإغلاقه بعد الانتهاء من كتلة التعليمات، حتى في حالات حدوث بعض الأخطاء.
لماذا نستخدم with؟
استخدام with يجعل الكود:
أكثر أمانًا
أكثر وضوحًا
أسهل في القراءة
أقل عرضة لنسيان إغلاق الموارد
with والملفات
تعتبر الملفات من أشهر الأمثلة على استخدام مدير السياق.
بدلًا من فتح الملف ثم تذكر إغلاقه يدويًا، يمكن استخدام with بحيث تتم إدارة دورة حياة الملف بشكل أفضل.
مدير السياق لا يقتصر على الملفات
يمكن استخدام مفهوم مدير السياق مع موارد أخرى أيضًا، مثل:
الاتصالات
بعض الموارد الخارجية
الأقفال (Locks)
الموارد التي تحتاج إلى تنظيف بعد استخدامها
إذن الفكرة الأساسية ليست الملفات فقط، وإنما إدارة الموارد بطريقة منظمة.
كيف يعمل مدير السياق؟
يعتمد مدير السياق في Python على آليتين أساسيتين:
__enter__() عند بدء السياق
__exit__() عند مغادرة السياق
وعند استخدام with تتولى Python استدعاء هذه العمليات في الوقت المناسب.
إنشاء مدير سياق خاص
يمكن للمبرمج إنشاء مدير سياق خاص به عندما يحتاج إلى إدارة مورد معين بطريقة مخصصة.
وهذا يسمح ببناء أدوات أكثر تنظيمًا في المشاريع المتقدمة.
فوائد استخدام Context Managers
من أهم الفوائد:
إدارة الموارد تلقائيًا
تقليل الأخطاء
تحسين قابلية قراءة الكود
ضمان تنفيذ عمليات التنظيف
جعل البرامج أكثر تنظيمًا
أخطاء شائعة عند المبتدئين
من الأخطاء الشائعة:
استخدام الموارد دون التأكد من تحريرها
الخلط بين with وtry
الاعتقاد أن with مخصص للملفات فقط
إنشاء مدير سياق مخصص دون الحاجة إليه
ملخص الدرس
تعرفنا في هذا الدرس على مدير السياق (Context Manager) واستخدام with في Python، وعرفنا كيف يساعد على إدارة الموارد وتنظيفها بطريقة منظمة، كما تعرفنا على __enter__() و__exit__() ودورهما في عمل مديري السياق.
في الدرس الرابع والثلاثون سنتعرف على البرمجة كائنية التوجه (OOP) في Python، وسنبدأ بفهم الفئات والكائنات وكيفية استخدامها لبناء برامج أكثر تنظيمًا.



