0Pricing
Python Academy · درس

الفئات والطريقة __init__

عرّف الفئات وأنشئ الكائنات وهيّئ السمات

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

تعريف فئة

استخدم الكلمة المفتاحية class لتعريف فئة. convention المتّبع هو استخدام نمط CapWords لأسماء الفئات.

class Dog:
    pass

fido = Dog()
print(type(fido))  # <class '__main__.Dog'>

الطريقة __init__

يُستدعى __init__ تلقائيًا عند إنشاء كائن. استخدمه لتهيئة سمات المثيل.

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

fido = Dog("Fido", "Labrador")
print(fido.name)   # Fido

شرح self

يشير self إلى المثيل الحالي. ويجب أن يكون المعلمة الأولى في كل طريقة مثيل. تمرّره Python تلقائيًا.

class Counter:
    def __init__(self):
        self.count = 0

    def increment(self):
        self.count += 1

c = Counter()
c.increment()
print(c.count)  # 1

مثيلات متعددة

يمتلك كل مثيل نسخته الخاصة من سمات المثيل التي عُيّنت في __init__.

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

p1 = Point(1, 2)
p2 = Point(5, 7)
print(p1.x, p2.x)  # 1 5

القيم الافتراضية للمعلمات في __init__

امنح معلمات __init__ قيمًا افتراضية لجعل بعض الوسائط اختيارية.

class Circle:
    def __init__(self, radius=1.0):
        self.radius = radius

c1 = Circle()
c2 = Circle(5)
print(c1.radius, c2.radius)  # 1.0 5

طرق المثيل

تعمل الطرق المعرّفة داخل الفئة على المثيل من خلال self.

class Rectangle:
    def __init__(self, w, h):
        self.w = w
        self.h = h

    def area(self):
        return self.w * self.h

r = Rectangle(4, 5)
print(r.area())  # 20

إضافة سمات بعد الإنشاء

يمكنك إضافة سمات إلى مثيل بعد إنشائه، لكن من الأنظف التصريح عنها جميعًا في __init__.

class Person:
    def __init__(self, name):
        self.name = name

p = Person("Alice")
p.age = 30      # added after creation
print(p.name, p.age)

القيمة المُعادة من __init__

يجب أن يُعيد __init__ القيمة None. ويؤدي إرجاع أي قيمة أخرى إلى رفع استثناء TypeError.

class Broken:
    def __init__(self):
        return 42   # TypeError!

# Correct
class OK:
    def __init__(self):
        self.value = 42
        # implicit return None

التحقق من نوع المثيل

استخدم isinstance() للتحقق مما إذا كان الكائن مثيلًا لفئة معينة.

class Animal:
    pass

class Dog(Animal):
    pass

d = Dog()
print(isinstance(d, Dog))     # True
print(isinstance(d, Animal))  # True

السمة __dict__

يخزّن كل مثيل سماته في قاموس __dict__.

class Book:
    def __init__(self, title, pages):
        self.title = title
        self.pages = pages

b = Book("Python 101", 300)
print(b.__dict__)  # {'title': 'Python 101', 'pages': 300}

حذف السمات

استخدم del لإزالة سمة من مثيل أثناء تشغيل البرنامج.

class Config:
    def __init__(self):
        self.debug = True
        self.version = "1.0"

cfg = Config()
del cfg.debug
print(hasattr(cfg, "debug"))  # False

تحقق سريع

ما الغرض من self في طرق الفئات في Python؟

مراجعة

الفئات مخططات لإنشاء الكائنات. يهيّئ __init__ سمات المثيل، ويشير self إلى الكائن الحالي، ويحافظ كل مثيل على قاموس سماته الخاص.

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

هل درس «الفئات والطريقة __init__» مجاني؟

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

ماذا ستتعلم في «الفئات والطريقة __init__»؟

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

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

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

كم من الوقت يستغرق درس «الفئات والطريقة __init__»؟

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

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

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

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

  1. الفئات والطريقة __init__
  2. سمات الكائنات مقابل سمات الفئات
  3. طرق الكائن وself
  4. الطرق السحرية: __str__ و__repr__
← العودة إلى Python Academy