تبسيط الاستيرادات في بايثون: كيفية الاستيراد حسب الفئة، وليس الملف
عند العمل مع بايثون، وخاصة في المشاريع الأكبر، يصبح إدارة الاستيرادات بشكل فعال أمرًا بالغ الأهمية. قد تجد نفسك ترغب في الوصول إلى الفئات مباشرة من حزمها بدلاً من ملفاتها المعنية. يمكن أن تجعل هذه الطريقة كودك أنظف وأسهل في القراءة. في منشور المدونة هذا، سنتناول كيفية تحقيق ذلك في مشاريع بايثون الخاصة بك بهيكل بسيط.
المشكلة
افترض أن لديك هيكل الملفات التالي لتطبيق بايثون الخاص بك:
app/
app.py
controllers/
__init__.py
project.py
plugin.py
في هذه الحالة، إذا قمت بتعريف فئة Project
في project.py
، سيكون استيرادها في app.py
تقليديًا بهذا الشكل:
from app.controllers.project import Project
ومع ذلك، ماذا لو كنت ترغب في أن تكون جملة الاستيراد أقصر وأكثر وضوحًا؟ قد ترغب في استيرادها بهذه الطريقة:
from app.controllers import Project
هذا لا يبسط فقط جمل الاستيراد الخاصة بك ولكنه يحتفظ أيضًا بمظهر قاعدة بياناتك أكثر تنظيمًا. تبرز هنا السؤال: كيف يمكنك إعداد ذلك؟
الحل
لتبسيط عملية الاستيراد الخاصة بك والسماح باستيراد الفئات مباشرة من حزمة، تحتاج إلى إجراء تعديل طفيف في ملف __init__.py
الموجود في دليل controllers
.
دليل خطوة بخطوة
-
افتح ملف
__init__.py
: يُستخدم هذا الملف عادةً لت初始化 حزمة بايثون الخاصة بك ويسمح لك بالتحكم فيما يتم استيراده عند استيراد الحزمة نفسها. -
أضف جملة الاستيراد: للسماح باستيراد فئة
Project
مباشرة منcontrollers
، أضف السطر التالي إلى ملف__init__.py
الخاص بك:from project import Project
هذا يخبر بايثون باستيراد فئة
Project
منproject.py
تلقائيًا عند استيراد حزمةcontrollers
. -
ضبط الاستيرادات المطلقة: مع إدخال بايثون 2.7 وما بعدها، تصبح الاستيرادات المطلقة الوضع الافتراضي للاستيرادات. لتجنب الصراعات المحتملة مع وحدة على المستوى الأعلى قد تتشارك في الاسم عن غير قصد (مثل
project
)، من المفيد تضمين نقطة للإشارة إلى استيراد نسبي. وبالتالي، ستقوم بتعديل الاستيراد في__init__.py
إلى:from .project import Project
هذا يوضح أن الفئة
Project
يتم استيرادها من الحزمة الحالية (controllers
).
النقاط الرئيسية
- من خلال تعديل ملف
__init__.py
، يمكنك تبسيط استيراداتك بشكل كبير. - استخدام النقطة (.) أمام اسم الوحدة يضمن أنك تشير إلى الوحدة الصحيحة، وهو أمر مفيد بشكل خاص في التطبيقات الأكبر مع إمكانية وجود صراعات في الأسماء.
- هذه الممارسة لا تعزز فقط قابلية قراءة الكود الخاص بك، ولكنها تساعدك أيضًا في الحفاظ على هيكل واضح مع توسع مشروعك.
الخاتمة
باتباع الخطوات البسيطة الموضحة أعلاه، يمكنك تعزيز ممارسات البرمجة الخاصة بك في بايثون من خلال جعل الاستيرادات أكثر وضوحًا. لا توفر هذه التقنية الوقت فحسب، بل تساهم أيضًا في كود نظيف وقابل للصيانة. تذكر، أن التطبيق المنظم جيدًا يبدأ بإدارة الاستيرادات بشكل فعال!
لا تتردد في تجربة هذا الأسلوب في مشاريعك الخاصة ورؤية الفرق الذي تصنعه!