فهرست سرفصل‌های Python
خانه (Home) مقدمه (Introduction) شروع به کار (Getting Started) سینتکس (Syntax) کامنت ها (Comments) متغیرها (Variables) متغیرها - نام گذاری (Variables Names) متغیرها - اختصاص چندین مقدار (Assign Multiple Values) متغیرها - خروجی (Output Variables) متغیرها - سراسری (Global Variables) انواع داده ها (Data Types) اعداد (Numbers) تبدیل (Casting) رشته ها (Strings) رشته ها - برش (Slicing Strings) رشته ها - اصلاح (Modify Strings) رشته ها - چسباندن (String Concatenation) رشته ها - قالب بندی (Format - Strings) رشته ها - کاراکتر فرار (Escape Characters) رشته ها - متدها (String Methods) بولین ها (Booleans) عملگرها (Operators) لیست ها (Lists) لیست ها - دسترسی به آیتم (Access List Items) لیست ها - تغییر آیتم (Change List Items) لیست ها - اضافه کردن آیتم (Add List Items) لیست ها - حذف کردن آیتم (Remove List Items) لیست ها - حلقه (Loop Lists) لیست ها - فهرست سازی فشرده (List Comprehension) لیست ها - مرتب سازی (Sort Lists) لیست ها - کپی (Copy Lists) لیست ها - چسباندن (Join Lists) لیست ها - متدها (List Methods) تاپل ها (Tuples) تاپل ها - دسترسی به آیتم ها (Access Tuple Items) تاپل ها - به روز رسانی (Update Tuples) تاپل ها - باز کردن (Unpack Tuples) تاپل ها - حلقه (Loop Tuples) تاپل ها - چسباندن (Join Tuples) تاپل ها - متدها (Tuple Methods) مجموعه ها - (Sets) مجموعه ها - دسترسی به آیتم ها (Access Set Items) مجموعه ها - اضافه کردن آیتم (Add Set Items) مجموعه ها - حذف کردن آیتم ها (Remove Set Items) مجموعه ها - حلقه (Loop Sets) مجموعه ها - چسباندن (Join Sets) مجموعه ها - یخ زده (Frozen Sets) مجموعه ها - متدها (Set Methods) دیکشنری ها (Dictionaries) دیکشنری ها - دسترسی به آیتم ها (Access Dictionary Items) دیکشنری ها - تغییر آیتم ها (Change Dictionary Items) دیکشنری ها - اضافه کردن آیتم (Add Dictionary Items) دیکشنری ها - حذف کردن آیتم (Remove Dictionary Items) دیکشنری ها - حلقه (Loop Dictionaries) دیکشنری ها - کپی (Copy Dictionaries) دیکشنری ها - تو در تو (Nested Dictionaries) دیکشنری ها - متدها (Dictionary Methods) شرط ها (If...Else) مطابقت (Match) حلقه While (While Loops) حلقه For (For Loops) توابع (Functions) دکوراتورها (Decorators) محدوده (Range) لامبدا (Lambda) آرایه ها (Arrays) شی گرایی (OOP) کلاس ها و اشیاء (Classes and Objects) وراثت (Inheritance) تکرارکننده ها (Iterators) چندریختی (Polymorphism) محدوده (Scope) ماژول ها (Modules) تاریخ و زمان (Datetime) ریاضی (Math) جی سون (JSON) عبارت منظم (Regex) پیپ (PIP) استثنا (Try...Except) قالب بندی رشته ها (String Formatting) خالی (None) ورودی از کاربر (User Input) محیط مجازی (Virtual Enviroment)
PYTHON

Python — کلاس ها و اشیاء (Classes and Objects)

آخرین بروزرسانی: 1404/07/05

کلاس ها و اشیاء (Classes and Objects)

در پایتون تقریباً همه چیز یک شی (Object) است. کلاس (Class) در واقع مانند یک الگو یا نقشه است که با استفاده از آن می توان اشیا ایجاد کرد. این ویژگی به شما کمک می کند کدتان ساختارمند و قابل استفاده مجدد باشد.

ایجاد کلاس

برای ساخت کلاس در پایتون از کلمه کلیدی class استفاده می کنیم:

class MyClass:
    x = 5

ایجاد شی

پس از تعریف کلاس، می توانیم اشیا از روی آن ایجاد کنیم:

p1 = MyClass()
print(p1.x)

متد __init__()

متد __init__() متدی سازنده است که هنگام ایجاد شی به طور خودکار اجرا می شود. معمولاً برای مقداردهی اولیه ویژگی ها استفاده می شود:

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

p1 = Person("John", 36)
print(p1.name)
print(p1.age)

نکته: این متد همیشه هنگام ساخت یک شی جدید فراخوانی می شود.

متد __str__()

متد __str__() مشخص می کند هنگام تبدیل شی به رشته چه مقداری بازگردانده شود:

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

    def __str__(self):
        return f"{self.name}({self.age})"

p1 = Person("John", 36)
print(p1)

ایجاد متد

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

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

    def myfunc(self):
        print("Hello my name is " + self.name)

p1 = Person("John", 36)
p1.myfunc()

پارامتر self

پارامتر self به نمونه فعلی کلاس اشاره دارد و برای دسترسی به متغیرها و متدهای کلاس استفاده می شود. نام آن الزامی نیست اما باید اولین پارامتر متد باشد.

مدیریت ویژگی های شی

می توانید ویژگی های شی را تغییر دهید یا حذف کنید:

p1.age = 40  # تغییر ویژگی

# حذف ویژگی
 del p1.age

# حذف شی
 del p1

استفاده از pass در کلاس

اگر بخواهید کلاسی خالی تعریف کنید باید از pass استفاده کنید تا خطا رخ ندهد:

class Person:
    pass

ادامه یادگیری

برای یادگیری بیشتر درباره شی گرایی در پایتون مطالعه کنید یا به بخش وراثت در پایتون بروید.