الفصل 8: الوحدات والاستيراد
ما ستتعلم في هذا الفصل
- تنظيم الكود في وحدات (ملفات
.ص) - استيراد وتصدير
- الاستيراد النسبي والمطلق
- أنماط تنظيم المشاريع الكبيرة
8.1 لماذا الوحدات؟
عندما يكبر البرنامج، نحتاج لتقسيمه إلى ملفات منفصلة. كل ملف .ص يمثل وحدة يمكن استيراد محتواها.
8.2 التصدير
لتصدير دالة أو صنف أو متغير من وحدة:
sad
# === ملف: رياضيات.ص ===
صدّر دالة جمع(أ، ب)
ارجع أ + ب
نهاية
صدّر دالة ضرب(أ، ب)
ارجع أ * ب
نهاية
صدّر ثابت PI = 3.14159
# هذه الدالة خاصة — لا يمكن استيرادها
دالة _مساعد()
ارجع 42
نهاية8.3 الاستيراد
استيراد محدد
sad
# === ملف: الرئيسي.ص ===
من رياضيات استورد جمع، ضرب
اطبع_سطر(جمع(3، 5)) # 8
اطبع_سطر(ضرب(4، 6)) # 24استيراد الكل
sad
من رياضيات استورد *
اطبع_سطر(جمع(3، 5))
اطبع_سطر(PI)استيراد بأسماء بديلة
sad
من رياضيات استورد جمع كـ اجمع
اطبع_سطر(اجمع(10، 20)) # 30الصيغة الحديثة
sad
استورد جمع، ضرب من رياضيات
استورد * من رياضيات8.4 الاستيراد النسبي
sad
# استيراد من نفس المجلد
من .وحدة_محلية استورد دالة_ما
# استيراد من المجلد الأب
من ..وحدة_أب استورد صنف_ما8.5 تنظيم مشروع
مشروعي/
├── الرئيسي.ص # نقطة الدخول
├── نماذج/
│ ├── مستخدم.ص
│ └── منتج.ص
├── خدمات/
│ ├── قاعدة_بيانات.ص
│ └── مصادقة.ص
└── مساعدات/
└── تحقق.صsad
# === الرئيسي.ص ===
من نماذج.مستخدم استورد مستخدم
من خدمات.مصادقة استورد سجّل_دخول
من مساعدات.تحقق استورد تحقق_بريد
متغير م = جديد مستخدم("أحمد"، "ahmed@mail.com")
سجّل_دخول(م)8.6 استيراد المكتبة القياسية
sad
من رياضيات استورد جذر_تربيعي، مطلق
من نصوص استورد قسم، حروف_كبيرة
من ملفات استورد اقرأ_ملف، اكتب_ملفتمارين
تمرين 1: مكتبة أشكال
أنشئ وحدة أشكال.ص تصدّر دوال حساب مساحة الدائرة والمربع والمثلث، ثم استوردها واستخدمها.
💡 الحل
sad
# === أشكال.ص ===
صدّر ثابت PI = 3.14159
صدّر دالة مساحة_دائرة(نصف_القطر)
ارجع PI * نصف_القطر ** 2
نهاية
صدّر دالة مساحة_مربع(ضلع)
ارجع ضلع * ضلع
نهاية
صدّر دالة مساحة_مثلث(قاعدة، ارتفاع)
ارجع 0.5 * قاعدة * ارتفاع
نهايةsad
# === الرئيسي.ص ===
من أشكال استورد *
اطبع_سطر("دائرة: " + مساحة_دائرة(5))
اطبع_سطر("مربع: " + مساحة_مربع(4))
اطبع_سطر("مثلث: " + مساحة_مثلث(6، 3))ملخص الفصل
| العملية | الصياغة |
|---|---|
| تصدير | صدّر دالة/صنف/متغير |
| استيراد محدد | من وحدة استورد عنصر |
| استيراد الكل | من وحدة استورد * |
| استيراد بديل | من وحدة استورد عنصر كـ بديل |
| استيراد نسبي | من .وحدة استورد عنصر |