Menu
Coddy logo textTech

שיטת הבנאי (__init__)

חלק מהיחידה תכנות מונחה עצמים במסלול ה-Python של Coddy. שיעור 7 מתוך 64.

השיטה __init__ היא שיטה מיוחדת שפועלת אוטומטית כשאתה יוצר אובייקט חדש. היא מאתחלת את התכונות של האובייקט.

הנה דוגמה למחלקה עם בנאי:

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

המתודה __init__ מקבלת פרמטרים ומשייכת אותם למאפייני המופע באמצעות 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__ מבטיחה שכל אובייקט יוגדר כראוי עם הנתונים ההתחלתיים שלו בעת יצירתו. היא חוסכת ממך את הצורך להגדיר מאפיינים באופן ידני לאחר יצירת האובייקט.

challenge icon

אתגר

קל

ניתנו לך קובצי Python (book.py ו־driver.py) כדי לממש מערכת לניהול ספרים. באתגר הזה תגדיר מחלקת Book בקובץ אחד, שתייובא ותשמש בקובץ אחר.

עליך:

  • להשלים את המחלקה Book בקובץ book.py באמצעות מתודת __init__ שמאתחלת את התכונות title, author ו־pages
  • הקובץ driver.py ייבא את המחלקה Book שלך וישתמש בה כדי ליצור אובייקט ספר עבור "Harry Potter" מאת "J.K. Rowling" עם 400 pages

פעל לפי הערות ה־TODO המפורטות בקובץ book.py.

נסו בעצמכם

# TODO: ייבאו את המחלקה Book מתוך book.py
# השתמשו בתבנית הזו: from book import Book

# TODO: צרו אובייקט ספר בשם '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 אונליין