Junior — Middle
76
Python-да __slots__ қолданудың дәстүрлі әдістермен салыстырғанда қандай артықшылығы бар?
Сұралған компаниялар
ИнфоТехСервис
AI-дан жауап
sobes.tech AI
Python-да __slots__ қолдану класс мысалдарының экземплярларына нақты атрибуттар жиынтығын анықтауға мүмкіндік береді, бұл дәстүрлі __dict__ сөздігінен бірнеше артықшылықтар береді:
- Жадыны үнемдеу:
__slots__бар экземплярлар атрибуттар үшін сөздік жасамайды, орнына ішкі түрде ықшамдалған көріністі пайдаланады, бұл көп объектілер болған кезде жады тұтынуды азайтады. - Қолжетімділікті жылдамдату: Атрибуттарға қол жеткізу тезірек болуы мүмкін, себебі сөздік іздеуге қажеттілік жоқ.
Мысал:
class Point:
__slots__ = ('x', 'y')
def __init__(self, x, y):
self.x = x
self.y = y
p = Point(1, 2)
print(p.x, p.y) # 1 2
Алайда, __slots__ қолданғанда жаңа атрибуттарды динамикалық түрде қосу мүмкін емес, бұл икемділікті шектейді, бірақ өнімділікті арттырады және жадыны үнемдейді.