Menu
Coddy logo textTech

משתני מופע לעומת משתני מחלקה

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

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

הנה דוגמה למחלקה עם שני סוגי המשתנים

class Student:
    # משתנה מחלקה - משותף לכל המופעים
    school = "Python High School"
    
    def __init__(self, name, grade):
        # משתני מופע - ייחודיים לכל תלמיד
        self.name = name
        self.grade = grade

יצירת אובייקטים של תלמידים:

alice = Student("Alice", "A")
bob = Student("Bob", "B")

גישה למשתני מופע (ייחודיים לכל אובייקט):

print(alice.name)  # Alice
print(bob.name)    # Bob
print(alice.grade) # A
print(bob.grade)   # B

גישה למשתני מחלקה (המשותפים לכל האובייקטים):

print(alice.school)     # Python High School
print(bob.school)       # Python High School
print(Student.school)   # Python High School

עכשיו שנה את משתנה המחלקה:

Student.school = "Python Academy"

בדקו כיצד השינוי משפיע על כל המופעים:

print(alice.school)   # Python Academy
print(bob.school)     # Python Academy

פלט:

Alice
Bob
A
B
Python High School
Python High School
Python High School
Python Academy
Python Academy

אפשר גם ליצור משתני מופע לאחר יצירת האובייקט:

alice.age = 16  # זה יוצר משתנה מופע
print(alice.age)  # 16
# print(bob.age)  # זה יגרום לשגיאה - ל-bob אין age

ההבדל העיקרי: משתני מופע (שנוצרים באמצעות self.variable_name) ייחודיים לכל אובייקט, ואילו משתני מחלקה (שמוגדרים ישירות במחלקה) משותפים לכל האובייקטים. שינוי של משתנה מחלקה משפיע על כל המופעים.

challenge icon

אתגר

קל

השלם מערכת בנקאית.. תגדיר מחלקה BankAccount בקובץ אחד ותשתמש בה בקובץ אחר.

תעבוד עם:

  • bank_account.py: תגדיר את המחלקה BankAccount עם מאפיינים ומתודות
  • driver.py: תייבא את המחלקה, תיצור חשבונות ותדגים משתני מחלקה

פעל לפי הערות TODO בשני הקבצים לקבלת הוראות שלב אחר שלב. ההערות ינחו אותך ביצירת המחלקה עם משתנים ומתודות מתאימים, ובהדגמה של האופן שבו משתני מחלקה משפיעים על כל המופעים.

נסו בעצמכם

# TODO: ייבאו את המחלקה BankAccount מתוך bank_account.py
from bank_account import BankAccount

# TODO: צרו שני חשבונות עם הפרטים המדויקים הבאים:
# - account1: בעל החשבון "Alice Smith" עם יתרה של $1000
# - account2: בעל החשבון "Bob Jones" עם יתרה של $2000

# TODO: קראו ל־display_info() עבור שני החשבונות

# TODO: שנו את משתנה המחלקה interest_rate ל־0.03 (3%)
# השתמשו בפורמט הזה: BankAccount.interest_rate = 0.03

# TODO: הדפיסו את הטקסט "After interest rate change:"

# TODO: קראו שוב ל־display_info() עבור שני החשבונות כדי להראות שלשניהם יש כעת את שיעור הריבית החדש
quiz iconבחנו את עצמכם

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

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

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