Menu
Coddy logo textTech

דקורטור של מתודת מחלקה

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

המעצב @classmethod יוצר מתודות שמקבלות את המחלקה עצמה כפרמטר הראשון (cls) במקום מופע (self).

הנה דוגמה למחלקה עם מתודות מחלקה:

class Student:
    school_name = "Python Academy"
    student_count = 0
    
    def __init__(self, name):
        self.name = name
        Student.student_count += 1
    
    @classmethod
    def get_school_info(cls):
        return f"School: {cls.school_name}, Students: {cls.student_count}"
    
    @classmethod
    def create_guest_student(cls):
        return cls("Guest")

קרא למתודות של מחלקה באמצעות שם המחלקה:

info = Student.get_school_info()
print(info)

צרו כמה תלמידים:

alice = Student("Alice")
bob = Student("Bob")

updated_info = Student.get_school_info()
print(updated_info)

השתמשו במתודות של המחלקה כבנאים חלופיים:

guest = Student.create_guest_student()
print(guest.name)
print(Student.get_school_info())

פלט:

School: Python Academy, Students: 0
School: Python Academy, Students: 2
Guest
School: Python Academy, Students: 3

אפשר לקרוא למתודות מחלקה גם מתוך מופעים:

alice = Student("Alice")
info_from_instance = alice.get_school_info()
print(info_from_instance)

פלט:

School: Python Academy, Students: 1

נקודה חשובה: השתמשו ב־@classmethod כשצריך לגשת לתכונות המחלקה או ליצור דרכים חלופיות לבניית אובייקטים. הפרמטר הראשון הוא cls (המחלקה עצמה), ולא self.

נסו בעצמכם

השיעור הזה לא כולל אתגר קוד.

quiz iconבחנו את עצמכם

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

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

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