Skip to content

الفصل 8: الوحدات والاستيراد

📖 المستوى: مبتدئ  |  ⏱ الوقت المقدّر: 40 دقيقة  |  📝 تمارين: 5

ما ستتعلم في هذا الفصل

  • تنظيم الكود في وحدات (ملفات )
  • استيراد وتصدير
  • الاستيراد النسبي والمطلق
  • أنماط تنظيم المشاريع الكبيرة

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))

ملخص الفصل

العمليةالصياغة
تصديرصدّر دالة/صنف/متغير
استيراد محددمن وحدة استورد عنصر
استيراد الكلمن وحدة استورد *
استيراد بديلمن وحدة استورد عنصر كـ بديل
استيراد نسبيمن .وحدة استورد عنصر

مُرخَّص بموجب رخصة MIT