Menu
Coddy logo textTech

דקורטור של מתודה סטטית

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

הדקורטור @staticmethod יוצר מתודות שלא צריכות את self או את המחלקה. הן פועלות כמו פונקציות רגילות, אך שייכות למחלקה.

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

class MathHelper:
    @staticmethod
    def add(a, b):
        return a + b
    
    @staticmethod
    def is_even(number):
        return number % 2 == 0

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

result = MathHelper.add(5, 3)
print(result)

check = MathHelper.is_even(10)
print(check)

אפשר גם לקרוא להן מתוך אובייקט:

helper = MathHelper()
result2 = helper.add(2, 4)
print(result2)

פלט:

8
True
6

מתודות סטטיות אינן ניגשות לנתונים של מופע או של מחלקה:

class Calculator:
    brand = "Python Calc"
    
    def __init__(self, owner):
        self.owner = owner
    
    @staticmethod
    def multiply(x, y):
        # אין גישה ל-self.owner או ל-Calculator.brand
        return x * y

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

נסו בעצמכם

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

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

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

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

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