ما الفرق؟
- عضو الكائن (instance): خاصّ بكل كائن.
- عضو ساكن (static): مشترك على مستوى الصنف كلّه.
class Counter:
count = 0 # ساكن (مشترك)
def __init__(self):
Counter.count += 1 # يزيد للكلّ
a = Counter()
b = Counter()
print(Counter.count) # 2
الطرق الساكنة
لا تحتاج كائنًا أو self:
class MathUtils:
@staticmethod
def add(a, b):
return a + b
MathUtils.add(2, 3) # عبر الصنف مباشرة
// Java
class MathUtils {
static int add(int a, int b) { return a + b; }
}
MathUtils.add(2, 3);
الثوابت الساكنة
class Circle {
static final double PI = 3.14159;
}
متى نستخدمها؟
- عدّادات أو قيم مشتركة بين كل الكائنات.
- دوال مساعدة لا تحتاج حالة كائن (utility).
🎯 التالي: تجاوز الطرق.