Menu
Coddy logo textTech

הפרמטר self

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

הפרמטר self מתייחס למופע של מחלקה בתוך מתודות. הוא מאפשר לך לגשת לתכונות של האובייקט הנוכחי ולשנות אותן.

הנה דוגמה למחלקה עם מתודות המשתמשות ב־self:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

הפרמטר self חייב תמיד להיות הפרמטר הראשון בהגדרות של מתודות. הוא מציין למתודה באיזה אובייקט מסוים נעשה שימוש.

צרו אובייקט של מכונית והוסיפו מאפיינים:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

עכשיו קראו למתודות:

my_car.honk()
my_car.describe()

פלט:

Beep beep!
I am a Red Sedan

שימו לב שכאשר קוראים ל־my_car.describe(), לא מעבירים שום דבר עבור self — Python מעבירה באופן אוטומטי את my_car כפרמטר self.

הנה מה שקורה מאחורי הקלעים:

# כשכותבים את זה:
my_car.describe()

# Python למעשה עושה את זה:
Car.describe(my_car)

הפרמטר self מאפשר לכל אובייקט לגשת לנתונים שלו. ללא self, מתודות לא היו יודעות באילו תכונות של האובייקט להשתמש.

נקודה חשובה: תמיד יש לכלול את self כפרמטר הראשון בהגדרות של מתודות, אך לעולם אין להעביר אותו כשקוראים למתודות — Python מטפלת בכך אוטומטית.

challenge icon

אתגר

קל

השלם את המחלקה Car בקובץ car.py על ידי הוספת מתודה בשם display_info שמשתמשת בפרמטר self כדי להדפיס את השנה, היצרן והדגם של המכונית בפורמט:

"This car is a [year] [make] [model]".

  • car.py: מכיל את הגדרת המחלקה Car, שבה תוסיף את המתודה display_info
  • driver.py: קובץ ההרצה הראשי שמייבא את המחלקה Car ומשתמש בה

הקובץ driver.py ייבא את המחלקה Car שלך וייצור מופעים כדי לבדוק את המימוש שלך. ודא שהמתודה שלך פועלת כראוי כשקוראים לה מקובץ מנהל ההתקן.

נסו בעצמכם

from car import Car

# בדקו את הקוד שלכם
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # אמור להדפיס: This car is a 2020 Toyota Corolla
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה תכנות מונחה עצמים

תרגלו בעצמכם: קומפיילר Python אונליין