هل تعاني من استهلاك ذاكرة كبير في كائنات Python الخاصة بك؟ اكتشف كيف يمكن لـ `__slots__` أن يساعد في تحسين الأداء وتقليل استهلاك الذاكرة.
class Point:
__slots__ = ('x', 'y')
def __init__(self, x, y):
self.x = x
self.y = y
# بدون __slots__:
class PointWithoutSlots:
def __init__(self, x, y):
self.x = x
self.y = y
import sys
p1 = Point(1, 2)
ps1 = PointWithoutSlots(1, 2)
print(f'Size with __slots__: {sys.getsizeof(p1)} bytes')
print(f'Size without __slots__: {sys.getsizeof(ps1)} bytes')
عندما لا تستخدم `__slots__`، يقوم Python بتخزين سمات الكائن في قاموس (`__dict__`). أما باستخدام `__slots__`، فأنت تحدد مسبقًا السمات المسموح بها، مما يمنع إنشاء `__dict__` ويجعل الكائنات أكثر كفاءة في استخدام الذاكرة. هذا مفيد بشكل خاص عند إنشاء عدد كبير من الكائنات.
['#Python', '#برمجة', '#تحسين_الأداء', '#علوم_البيانات', '#تطوير_الويب', '#كود']