کلاس ها در پایتون

  • مدرس : علی بیگدلی
  • تاریخ انتشار: 1404/05/12
  • تعداد بازدید: 23

مقدمه‌ای بر کلاس‌ها و برنامه‌نویسی شیءگرا در پایتون

در برنامه‌نویسی شیءگرا (Object-Oriented Programming یا OOP)، داده‌ها و رفتارهای مرتبط با آن‌ها در قالب واحدهای منطقی به نام کلاس سازماندهی می‌شوند. یک کلاس مانند یک قالب یا طرح است که مشخص می‌کند اشیاء (یا object) چگونه باید ساخته شوند و چه ویژگی‌ها و رفتارهایی دارند.

کلاس چیست؟

کلاس در واقع یک تعریف یا دستورالعمل است که به کامپیوتر می‌گوید چگونه اشیاء ساخته شوند. به تنهایی کلاس حافظه‌ای اشغال نمی‌کند، بلکه مانند یک نقشه است. وقتی یک کلاس را instance یا شیء (object) می‌سازیم، یک فضای مستقل در حافظه به آن اختصاص می‌یابد که اطلاعات مربوط به آن شیء در آن ذخیره می‌شود.

یک کلاس خالی و اشیاء آن

اگر یک کلاس بدون هیچ خصوصیت یا متدی تعریف کنیم، پایتون به ما اجازه می‌دهد اشیاء را از آن بسازیم و هر شیء یک آدرس مستقل در حافظه خواهد داشت.

class Empty:
    pass

obj1 = Empty()
obj2 = Empty()

print(obj1)  # خروجی: چیزی شبیه به <__main__.Empty object at 0x...>
print(obj2)  # خروجی: آدرس حافظه متفاوت برای شیء دوم

در اینجا، Empty یک کلاس خالی است. obj1 و obj2 دو شیء مجزا از این کلاس هستند که هرکدام آدرس حافظه خاص خود را دارند.

Attribute چیست؟

ویژگی‌ها (Attributes) اطلاعاتی هستند که به هر شیء اختصاص داده می‌شوند، مانند مشخصات یا داده‌های مرتبط با آن شیء. برای نمونه، اگر یک کلاس Car داشته باشیم، ویژگی‌هایی مثل رنگ یا مدل ممکن است به هر شیء اختصاص یابند.

متد __init__ و مقداردهی اولیه

متد __init__ به عنوان سازنده کلاس شناخته می‌شود. این متد هنگام ساخت هر شیء به طور خودکار فراخوانی می‌شود و برای مقداردهی اولیه ویژگی‌های آن شیء استفاده می‌شود. این متد اولین پارامتر خود را که معمولاً self نام دارد دریافت می‌کند که به شیء جاری اشاره می‌کند.

مثال بدون __init__ و مقداردهی دستی ویژگی‌ها:

class Car:
    pass

car1 = Car()
car1.color = "red"  # به صورت دستی ویژگی اضافه کردیم
car2 = Car()
car2.color = "blue"

print(car1.color)  # خروجی: red
print(car2.color)  # خروجی: blue

اما این کار به صورت دستی و پراکنده است. استفاده از __init__ به ما امکان می‌دهد مقداردهی اولیه را هنگام ساخت شیء انجام دهیم:

class Car:
    def __init__(self, color, model):
        self.color = color     # مقداردهی ویژگی color
        self.model = model     # مقداردهی ویژگی model

car1 = Car("red", "Sedan")
car2 = Car("blue", "SUV")

print(car1.color, car1.model)  # خروجی: red Sedan
print(car2.color, car2.model)  # خروجی: blue SUV
خلاصه مفاهیم اصلی
  • کلاس (Class): تعریف قالب یا طرح برای ایجاد اشیاء.
  • شیء (Object): نمونه‌ای از یک کلاس با فضای اختصاصی در حافظه.
  • ویژگی (Attribute): داده‌ها و مشخصات مرتبط با هر شیء.
  • متد __init__: سازنده کلاس که هنگام ساخت هر شیء اجرا شده و ویژگی‌ها را مقداردهی اولیه می‌کند.
  • self: پارامتر اول همه متدهای کلاس که به خود شیء جاری اشاره دارد.

ثبت دیدگاه


نکته: آدرس ایمیل شما منتشر نخواهد شد

دیدگاه کاربران (0)


هیچ دیدگاهی ثبت نشده است. می‌توانید اولین نفر باشید.