آموزش __slots__ در پایتون

August 2020

در این ویدیو با __slots__ در پایتون آشنا میشوید. ویژگی‌های هر instance در یک دیکشنری به نام __dict__ ذخیره میشوند. این دیکشنری حاوی attributeهای هر instance است. مثل هر دیکشنری دیگری شما متیوانید به __dict__ مقدار اضافه کنید یا از آن حذف کنید. مشکلی ظاهرا این دیکشنری دارد اینست که برای هر instance به صورت جداگانه ایجاد میشود و باعث مصرف اضافه حافظه میشود. بنابراین میتوانید با استفاده از __slots__ دیکشنری __dict__ را غیرفعال کنید تا در مصرف منابع صرفه جویی کنید. اما مشکلی که __slots__ دارند اینست که دیگر نمیتوان به صورت داینامیک به instanceها ویژگی‌های جدید اضافه کرد. در پایتون نسخه 3.3 به بعد مشکل __dict__ حل شده و دیگر نیازی به استفاده از __slots__ نیست.

ارسال نظر

اگر قراره سوالی بپرسید که داخلش کد هست، بهتره از کدتون عکس بگیرید و به ایمیلی که پایین نوشتم بفرستید