دوره‌ها / آموزش پایتون (Python) / کلاس‌ها و اشیاء (Python Classes/Objects)

کلاس‌ها و اشیاء (Python Classes/Objects)

15 دقیقه Article

کلاس‌ها و اشیاء: سنگ بنای شی‌ءگرایی (Classes & Objects) 🏗️💎

پایتون یک زبان برنامه‌نویسی شی‌ءگرا (Object-Oriented) است. تقریباً همه چیز در پایتون یک "شیء" است که ویژگی‌ها (Properties) و متدهای (Methods) خاص خود را دارد.

۱. کلاس چیست؟

کلاس را به عنوان یک "نقشه" یا "الگو" (Blueprint) برای ساخت اشیاء در نظر بگیرید. مثلاً کلاس "ماشین" مشخص می‌کند که هر ماشینی باید رنگ، مدل و سرعت داشته باشد. اما هر "ماشینِ" واقعی که ساخته می‌شود، یک شیء از آن کلاس است.

۲. تابع __init__()؛ سازنده کلاس

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

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

p1 = Person("John", 36)
print(p1.name)
print(p1.age)
پارامتر self: پارامتر self ارجاعی به نمونه (Instance) فعلی کلاس است و برای دسترسی به متغیرهایی که متعلق به آن کلاس هستند استفاده می‌شود. لزومی ندارد نام آن حتماً self باشد، اما این یک استاندارد جهانی است.

۳. متدهای اشیاء (Object Methods)

اشیاء همچنین می‌توانند حاوی متدها باشند. متدها در واقع توابعی هستند که متعلق به شیء می‌باشند و روی داده‌های آن شیء عملیاتی انجام می‌دهند.

۴. ویرایش و حذف ویژگی‌ها

شما می‌توانید ویژگی‌های یک شیء را به راحتی تغییر دهید: p1.age = 40. همچنین می‌توانید با دستور del یک ویژگی یا حتی کلِ شیء را حذف کنید.

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

تمرین‌های عملی

برای تثبیت یادگیری این درس تمرین‌های زیر را حل کنید

ساخت کلاس ماشین Medium
سوال تمرین

کلاسی به نام Car بسازید که دارای تابع __init__ باشد و دو ویژگی brand و model را مقداردهی کند. سپس یک شیء به نام c1 از این کلاس با مقادیر 'Toyota' و 'Corolla' بسازید.

پاسخ تمرین
PYTHON
class Car:
  def __init__(self, brand, model):
    self.brand = brand
    self.model = model

c1 = Car('Toyota', 'Corolla')
print(c1.brand)

آماده رفتن به درس بعدی هستید؟

این درس را به پایان رساندید و می‌توانید به درس بعدی بروید.