آشنایی کامل با کلاس‌ها در پایتون – شی‌گرایی، ساختار، وراثت و کاربردهای عملی

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

پایتونکلاسشی‌گراییوراثت

~3 دقیقه مطالعه • بروزرسانی ۲۵ شهریور ۱۴۰۴

مقدمه


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


تعریف کلاس در پایتون


برای تعریف یک کلاس از کلیدواژه class استفاده می‌کنیم:


class Person:
    pass

در مثال بالا، کلاس Person تعریف شده اما هنوز هیچ ویژگی یا رفتاری ندارد.


سازنده کلاس (__init__)


برای مقداردهی اولیه به ویژگی‌های کلاس، از متد __init__ استفاده می‌شود:


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

در اینجا، هنگام ساخت شی از کلاس، نام و سن به‌عنوان ورودی دریافت و ذخیره می‌شوند.


ایجاد شی از کلاس


p1 = Person("Ali", 30)
print(p1.name)  # خروجی: Ali

با استفاده از کلاس، شی‌ای به نام p1 ساخته شده که ویژگی‌های خاص خود را دارد.


تعریف متدهای کلاس


متدها رفتارهایی هستند که به اشیاء کلاس نسبت داده می‌شوند:


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

    def greet(self):
        print(f"Hello, my name is {self.name}")

p2 = Person("Sara")
p2.greet()  # خروجی: Hello, my name is Sara

وراثت در کلاس‌ها


با وراثت می‌توان کلاس جدیدی ساخت که ویژگی‌ها و رفتارهای کلاس والد را به ارث ببرد:


class Employee(Person):
    def __init__(self, name, salary):
        super().__init__(name)
        self.salary = salary

کلاس Employee از Person ارث‌بری کرده و ویژگی جدیدی به نام salary اضافه کرده است.


کپسوله‌سازی و سطح دسترسی


در پایتون، برای تعریف ویژگی‌های خصوصی از پیشوند _ یا __ استفاده می‌شود:


class BankAccount:
    def __init__(self, balance):
        self.__balance = balance

    def get_balance(self):
        return self.__balance

ویژگی __balance فقط از طریق متد get_balance قابل‌دسترسی است.


کلاس‌های کلاس‌متد و استاتیک‌متد


متدهای کلاس و استاتیک‌متدها با دکوریتورهای خاص تعریف می‌شوند:


class Math:
    @staticmethod
    def add(x, y):
        return x + y

    @classmethod
    def identity(cls):
        return cls.__name__

کاربردهای عملی کلاس‌ها



  • مدیریت کاربران در سیستم‌های احراز هویت

  • مدل‌سازی موجودیت‌ها در بازی‌ها یا اپلیکیشن‌ها

  • ساخت APIهای شی‌گرا با فریم‌ورک‌هایی مانند Django و FastAPI

  • کپسوله‌سازی منطق پیچیده در پروژه‌های بزرگ


جمع‌بندی


کلاس‌ها در پایتون ابزار قدرتمندی برای ساختاردهی به کد، مدیریت داده‌ها و پیاده‌سازی منطق شی‌گرا هستند. با یادگیری اصول کلاس، سازنده‌ها، وراثت، و متدها، می‌توان پروژه‌هایی مقیاس‌پذیر، قابل‌نگهداری و حرفه‌ای ایجاد کرد.


نوشته و پژوهش شده توسط دکتر شاهین صیامی