رفتن به محتوای اصلی
برنامه‌سازی پیشرفته با پایتون درس‌نامهٔ آزاد
مفهوم مقدماتی ۶ دقیقه

کلاس در برابر شیء

تفاوت کلاس و شیء، ویژگی نمونه‌ای در برابر کلاسی و استقلال حالت با مثال بانکی.

تعریف ویژگی نمونه‌ای

داده‌ای که به یک شیء خاص تعلق دارد و معمولاً در __init__ با self ساخته می‌شود.

class Account:
    bank = "ملی"  # ویژگی کلاسی: مشترک همهٔ نمونه‌ها

    def __init__(self, owner):
        self.owner = owner      # ویژگی نمونه‌ای
        self.balance = 0.0      # ویژگی نمونه‌ای

a = Account("علی")
b = Account("سارا")
a.balance = 100
print(b.balance)  # 0.0 — مستقل
print(a.bank)     # ملی — از کلاس می‌آید

ویژگی کلاسی برای ثابت‌های مشترک (نام بانک، نرخ پیش‌فرض) است؛ اگر از طریق نمونه به آن انتساب کنی، سایه‌ای نمونه‌ای می‌سازی و مقدار کلاس عوض نمی‌شود — دام کلاسیک امتحان.

برداشت نادرست رایج

اشتباه رایج

تغییر ویژگی از روی یک نمونه، همان ویژگی را برای همه عوض می‌کند.

تصحیح

خواندن از نمونه به کلاس می‌رسد، ولی انتساب روی نمونه فقط همان نمونه را عوض می‌کند. برای تغییر واقعیِ مشترک باید روی خودِ کلاس بنویسی.

مطالب مرتبط

از همین بخش و با برچسب‌های مشترک

این مطلب را خواندید؟ آن را علامت بزنید تا پیشرفت شما روی همین دستگاه ذخیره شود.

وضعیت پیشرفت برای کلاس در برابر شیء