שיטת הבנאי (__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__ מבטיחה שכל אובייקט יוגדר כראוי עם הנתונים ההתחלתיים שלו בעת יצירתו. היא חוסכת ממך את הצורך להגדיר מאפיינים באופן ידני לאחר יצירת האובייקט.
אתגר
קלניתנו לך קובצי 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")השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה תכנות מונחה עצמים
1יסודות התכנות מונחה העצמים (OOP)
קבצים חיצונייםמבוא ל-OOPמחלקות לעומת אובייקטיםהפרמטר selfמתודותמאפייניםשיטת הבנאי (__init__)חזרה: מחשבון פשוט5פולימורפיזם
בחינה מחדש של דריסת מתודותטיפוסיות ברווזמחלקות ומתודות אבסטרקטיותעיצוב ממשקיםסיכום – מחשבון צורות8מושגים מתקדמים בתכנות מונחה עצמים
קומפוזיציה לעומת הורשהMixinsמתודות סטטיות ומתודות מחלקהדקורטורים למחלקותמנהלי הקשרתרגלו בעצמכם: קומפיילר Python אונליין