0Pricing
Python Academy · درس

التغليف والتجريد

افهم كيفية إخفاء التعقيد وإظهار ما هو ضروري فقط

التغليف والتجريد درس مجاني في Python Academy على CoddyKit. هذا هو الدرس 5 من أصل 6. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Python Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Python Academy 6 دروس في المجموع.

مقدمة إلى التغليف والتجريد

مقدمة إلى التغليف والتجريد

يُعدّ التغليف والتجريد مبدأين أساسيين في البرمجة كائنية التوجه (OOP)، ويساعدان على إدارة التعقيد وتحسين تنظيم الشيفرة.

يقيّد التغليف الوصول المباشر إلى بيانات الكائن، بينما يخفي التجريد تفاصيل التنفيذ ويكشف الميزات الأساسية فقط.

التغليف والتجريد — رسم توضيحي 1

ما المقصود بالتغليف؟

ما المقصود بالتغليف؟

يعني التغليف جمع البيانات (السمات) والأساليب معًا داخل صنف، وتقييد الوصول المباشر إليها.

# Example of encapsulation
class Person:
    # Private attribute (indicated by double underscores)
    def __init__(self, name):
        self.__name = name

    # Public method to access the private attribute
    def get_name(self):
        return self.__name

person = Person("Alice")
# Accessing private data via a public method
print(person.get_name())

السمات الخاصة

السمات الخاصة

في Python، يُشار إلى السمات الخاصة باستخدام شرطتي سفلية متتاليتين __. ولا يمكن الوصول إليها مباشرةً من خارج الصنف.

# Private attributes
class Car:
    def __init__(self, brand):
        self.__brand = brand  # Private attribute

    def get_brand(self):
        # Public method to access the private attribute
        return self.__brand

car = Car("Toyota")
print(car.get_brand())  # Outputs: Toyota

ما المقصود بالتجريد؟

ما المقصود بالتجريد؟

يخفي التجريد تفاصيل التنفيذ الداخلية للصنف، ولا يكشف للمستخدم إلا الوظائف الضرورية.

# Example of abstraction
from abc import ABC, abstractmethod

# Abstract Base Class
class Shape(ABC):
    @abstractmethod
    def area(self):
        pass

# Subclass implementing the abstract method
class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius

    def area(self):
        return 3.14 * self.radius * self.radius

circle = Circle(5)
print(circle.area())  # Outputs: 78.5

الأصناف المجرّدة

الأصناف المجرّدة

الأصناف المجرّدة هي أصناف لا يمكن إنشاء كائنات منها مباشرةً. وتُستخدم لتعريف واجهة مشتركة للأصناف الفرعية.

# Abstract Base Class with multiple subclasses
from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def speak(self):
        pass

class Dog(Animal):
    def speak(self):
        print("Dog barks")

class Cat(Animal):
    def speak(self):
        print("Cat meows")

dog = Dog()
cat = Cat()
dog.speak()  # Outputs: Dog barks
cat.speak()  # Outputs: Cat meows

التغليف مقابل التجريد

التغليف مقابل التجريد

يرتبط التغليف والتجريد ارتباطًا وثيقًا، لكنهما مفهومان مختلفان:

  • التغليف: يقيّد الوصول إلى البيانات داخل الصنف.
  • التجريد: يخفي تفاصيل التنفيذ ويوفّر واجهة واضحة.

مزايا التغليف والتجريد

مزايا التغليف والتجريد

فيما يلي بعض المزايا الرئيسية:

  • تحسين أمان الشيفرة وقابليتها للصيانة.
  • تشجيع كتابة شيفرة معيارية قابلة لإعادة الاستخدام.
  • تسهيل قراءة الشيفرة وفهمها.

الأخطاء الشائعة في التغليف والتجريد

الأخطاء الشائعة في التغليف والتجريد

فيما يلي بعض الأخطاء التي ينبغي تجنّبها:

  • الوصول إلى السمات الخاصة مباشرةً بدلًا من استخدام دوال getter وsetter.
  • إنشاء كائنات من الأصناف المجرّدة مباشرةً.
  • عدم تنفيذ جميع الأساليب المجرّدة في الأصناف الفرعية.

ما الذي تعلمتموه؟

ما الذي تعلمتموه؟

في هذا الدرس، تعلمتم ما يلي:

  • مفهوم التغليف وكيفية تقييد الوصول إلى البيانات باستخدام السمات الخاصة.
  • مفهوم التجريد وكيفية استخدام الأصناف المجرّدة لتعريف واجهات مشتركة.
  • الاختلافات بين التغليف والتجريد وفوائدهما.

أحسنتم! لننتقل إلى الموضوع التالي.

التغليف والتجريد — رسم توضيحي 11

الأسئلة الشائعة

هل درس «التغليف والتجريد» مجاني؟

نعم — نص درس «التغليف والتجريد» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Python Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Python Academy 6 دروس في المجموع.

ماذا ستتعلم في «التغليف والتجريد»؟

افهم كيفية إخفاء التعقيد وإظهار ما هو ضروري فقط تتمرن على Python Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Python Academy؟

لا تُشترط خبرة سابقة. Python Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 5 من أصل 6.

كم من الوقت يستغرق درس «التغليف والتجريد»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Python Academy هذا؟

نعم. كل درس في Python Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. الفئات والكائنات
  2. السمات والطرق
  3. الوراثة
  4. تعدد الأشكال
  5. التغليف والتجريد
  6. الطرق السحرية (__str__ و__repr__ وما إلى ذلك)
← العودة إلى Python Academy