Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

دالة البناء (__init__)

جزء من قسم البرمجة كائنية التوجه في رحلة Python على Coddy. الدرس 7 من 64.

إن طريقة __init__ هي method خاصة تعمل تلقائيًا عند إنشاء object جديد. وهي تهيّئ attributes الخاصة بـ object.

إليك مثالًا على فئة تحتوي على مُنشئ:

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

تأخذ __init__ method ‏parameters وتُسنِدها إلى attributes النسخة باستخدام self.

أنشئ كائنات باستخدام المُنشئ:

rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")

عند استدعاء Dog("Rex", "German Shepherd")، تستدعي Python تلقائيًا __init__ وتمرر الوسائط.

الوصول إلى السمات التي عيّنها المُنشئ:

print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)

المخرجات:

Rex
German Shepherd
Buddy
Golden Retriever

يمكنك أيضًا أن يكون لديك مُنشئ بقيم افتراضية:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

# إنشاء قطط
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age يُعيَّن افتراضيًا إلى 1

print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")

المخرجات:

Fluffy is 3 years old
Whiskers is 1 years old

النقطة الأساسية: تضمن __init__ method إعداد كل object بشكل properly باستخدام بياناته الأولية عند إنشائه. وتجنّبك الحاجة إلى ضبط attributes يدويًا بعد إنشاء object.

challenge icon

التحدي

سهل

لديك ملفات Python (book.py وdriver.py) لتنفيذ نظام لإدارة الكتب. في هذا التحدي، ستعرّف فئة Book في ملف واحد، وسيتم استيرادها واستخدامها في ملف آخر.

مهمتك هي:

  • إكمال فئة Book في book.py باستخدام طريقة __init__ التي تهيّئ سمات title وauthor وpages
  • سيقوم ملف driver.py باستيراد فئة Book واستخدامها لإنشاء كائن كتاب بعنوان "Harry Potter" by "J.K. Rowling" with 400 pages

اتبع تعليقات TODO التفصيلية في book.py.

التنسيق المطلوب للإخراج: [المحتوى المترجم هنا]

جرّب بنفسك

# TODO: استورد الفئة Book من book.py
# استخدم هذا التنسيق: from book import Book

# TODO: أنشئ كائنًا من Book باسم 'my_book' بالقيم التالية:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# مثال: my_book = Book("Title", "Author", pages)

# اطبع تفاصيل الكتاب
# TODO: تأكد من أن my_book معرّف بشكل صحيح قبل تشغيل هذا السطر
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس البرمجة كائنية التوجه

تدرّب بنفسك: مترجم Python عبر الإنترنت