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