جستجو برای:
سبد خرید 0
  • صفحه نخست
  • دوره های دوبله شده
    • دوره جامع جاوااسکریپت
    • دوره جامع دوبله شده پایتون (مقدماتی+پیشرفته)
    • نمونه دوبله های انجام شده
    • مینی دوره راه اندازی پایتون (رایگان)
  • دوره های زبان اصلی
    • دوره جامع و زبان اصلی پایتون
    • دوره زبان اصلی شیءگرایی در JS
    • دوره جامع و زبان اصلی جاوااسکریپت
    • دوره جامع و زبان اصلی جنگو
  • نقشه سایت
    • همکاران اصل آموز
    • درباره اصل آموز
    • تماس با ما
    • مقالات
اصل آموز
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
ورود با Google
یا استفاده از شبکه اجتماعی
عضویت
[suncode_otp_registration_form]

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

ارسال مجدد کد یکبار مصرف (00:30)
اصل آموز
  • صفحه نخست
  • دوره های دوبله شده
    • دوره جامع جاوااسکریپت
    • دوره جامع دوبله شده پایتون (مقدماتی+پیشرفته)
    • نمونه دوبله های انجام شده
    • مینی دوره راه اندازی پایتون (رایگان)
  • دوره های زبان اصلی
    • دوره جامع و زبان اصلی پایتون
    • دوره زبان اصلی شیءگرایی در JS
    • دوره جامع و زبان اصلی جاوااسکریپت
    • دوره جامع و زبان اصلی جنگو
  • نقشه سایت
    • همکاران اصل آموز
    • درباره اصل آموز
    • تماس با ما
    • مقالات
ثبت نام کنید
0

وبلاگ

اصل آموز > مقالات > پایتون و هوش مصنوعی > کلاس های داده در پایتون

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

13 اسفند 1403
ارسال شده توسط مرتضي بُنجَخي
پایتون و هوش مصنوعی

کلاس‌های داده (Data Classes) چیا هستن

کلاس‌های داده (Data Classes) توی پایتون ۳.۷ معرفی شدن و کار رو برای تعریف کلاس‌هایی که فقط برای نگهداری داده‌ها هستن، خیلی راحت کردن. قبل از اومدن Data Classها، وقتی می‌خواستیم یه کلاس ساده برای ذخیره اطلاعات بسازیم، مجبور بودیم کلی کد بنویسیم؛ مثل تعریف متد __init__، __repr__ و غیره. اما با Data Classها، این کارا خودکار انجام می‌شه و کد تمیزتر و کوتاه‌تری داریم.

برنامه نویسی پایتون | اپل | ماش همدانی

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

اگه یادتون رفته که کلاس ها چیا هستن یا شایدم دوس دارین بدونین که استاد ماش همدانی اون ها رو چطوری توضیح میده تو دوره جامع پایتون میتونین به این ویدئو مراجعه کنین.

استاد ماش از اساتید بنام سطح جهان در آموزش برنامه نویسه و اگه دوس دارین بیشتر در موردش اطلاعات کسب کنین، میتونین روی لینک زیر کلیک کنین.

اطلاعات بیشتر در مورد مدرس دوره جامع پایتون
ماش همدانی

چطوری از Data Class استفاده کنیم؟

برای استفاده از Data Class، اول باید ماژول dataclasses رو ایمپورت کنیم و بعد با دکوریتور dataclass@کلاس‌مون رو تعریف کنیم. اینجوری:


        from dataclasses import dataclass
        

        @dataclass
        class Product:
            name: str
            price: float
            in_stock: bool = True        
        

توی این مثال، یه کلاس Product داریم با سه تا فیلد: name، price و in_stock. با استفاده از dataclass@، پایتون خودش متدهای __init__، __repr__ و بقیه رو برامون می‌سازه.

مزایای استفاده از Data Class ها:

استفاده از Data Classها در پایتون مزایای زیادی به همراه داره که می‌تونه برنامه‌نویسی رو ساده‌تر و کد رو بهینه‌تر کنه. این مزایا به شرح زیر هستند:

  1. کاهش کدنویسی: یکی از بزرگترین مزایای Data Classها اینه که نیازی به نوشتن متدهای تکراری مثل __init__، __repr__، و __eq__ نداریم. وقتی که شما از dataclass@ استفاده می‌کنید، پایتون به‌طور خودکار این متدها رو برای شما می‌سازه. این کار باعث می‌شه که حجم کد کاهش پیدا کنه و وقت کمتری برای نوشتن کدهای تکراری صرف بشه.

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

  3. مقایسه راحت‌تر: یکی از قابلیت‌های جالب Data Classها اینه که به‌طور پیش‌فرض متد __eq__ رو می‌سازن. این یعنی شما می‌تونید به راحتی دو شیء از یک Data Class رو با هم مقایسه کنید. به‌طور معمول، برای مقایسه اشیاء باید خودتون متد __eq__ رو پیاده‌سازی کنید، اما با استفاده از Data Class این کار به‌طور خودکار انجام می‌شه. به این ترتیب، می‌تونید به راحتی بررسی کنید که دو شیء از یک Data Class برابر هستند یا نه.

در نهایت، استفاده از Data Classها به شما کمک می‌کنه که کدهای تمیزتر، کوتاه‌تر و قابل فهم‌تری بنویسید، که به مراتب کار با آن‌ها راحت‌تر می‌شه.

چن تا نکته واسه استفاده کردن ازین کلاس های داده

تغییرناپذیری (Immutability): اگه می‌خوایم اشیاءمون بعد از ساخته شدن تغییر نکنن، می‌تونیم از پارامتر frozen=True توی دکوریتور استفاده کنیم:


from dataclasses import dataclass
@dataclass(frozen=True)
class Product:
    name: str
    price: float
    in_stock: bool = True
    

اینجوری دیگه اگه بخوایم مقدار یکی از فیلدها رو عوض کنیم، پایتون ارور می‌ده و اجازه این کار رو بهمون نمیده. عالیه. اما این نکته رو هم بد نیست بدونین که استفاده از frozen=True باعث میشه که کلاس داده‌ مون غیرقابل تغییر باشه، اما این تغییرناپذیری به صورت سطحیه. به این معنی که اگه ویژگی‌ها شامل اشیاء تغییرپذیر مانند لیست‌ها یا دیکشنری‌ها باشن، تغییرات درون آن‌ها ممکنه رخ بده و هیچ خطایی هم رخ نمیده.

مرتب‌سازی فیلدها: تو پایتون، واسه مدیریت و سفارشی‌سازی فیلدهای توی کلاس‌های داده (Data Classes)، میتونیم از تابع ()field استفاده کنیم. این تابع به شما امکان رو میده که ویژگی‌های فیلدها رو تنظیم کنین، مث ترتیب نمایش، مقدار پیش‌فرض، و رفتارهای خاص دیگه. مثلا اگه بخوایم ترتیب فیلدها رو مشخص کنیم، یا فیلدی رو از بعضی قابلیت‌ها مستثنی کنیم، می‌تونیم اینجوری از ()field استفاده کنیم.


from dataclasses import dataclass, field

@dataclass
class Product:
    name: str
    price: float
    in_stock: bool = True
    id: int = field(repr=False)
    

توی این مثال، فیلد id دیگه توی خروجی __repr__ نمایش داده نمی‌شه و این عالیه.

جمع بندی

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

پکیج جامع پایتون

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

دوره پیشرفته پایتون | ماش همدانی

دوره پیشرفته آموزش پایتون

بدون امتیاز 0 رای
ماش همدانی
14
4
1,500,000 تومان
دوره مقدماتی پایتون | ماش همدانی

دوره مقدماتی آموزش پایتون

بدون امتیاز 0 رای
ماش همدانی
14
5
1,500,000 تومان
33%تخفیف
پکیج جامع پایتون

دوره جامع آموزش پایتون

4.75 4 رای
ماش همدانی ، مرتضی بنجخی
14
208
3,000,000 2,000,000 تومان
برچسب ها: پایتون
درباره مرتضي بُنجَخي

یه دانش جوی خودآموز که هر روز دوس داره به آموزخته هاش اضافه کنه. از 13 سالگیش، یعنی از سال 82، داره زبان انگلیسی میخونه و الان دکترای آموزش زبان انگلیسی داره. 10 ساله که سوپروایزر یه آموزشگاه زبان انگلیسیه و 11 ساله که داره زبان انگلیسی تدریس میکنه. علاوه بر زبان انگلیسی تو مهارتهای کامپیوتری ماهره و با HTML، CSS و JS آشنایی داره و در حال حاضر داره پایتون یاد میگیره. در حال حاضر تو مجموعه اصل آموز داره مدیریت پروژه های دوبله رو انجام میده و یکی از دو مدیر اصلی این مجموعس. با امید زیادی به آینده قراره خبرای خوبی براتون داشته باشیم و کار شما رو واسه یادگیری برنامه نویسی راحت تر از قبل کنیم. اینجا اطلاعات بیشتری درمورد ایشون وجود داره.

نوشته‌های بیشتر از مرتضي بُنجَخي
قبلی ماژول در برنامه نویسی چیست؟
بعدی دوره جامع پایتون: عالی و قوی

دیدگاهتان را بنویسید لغو پاسخ

جستجو برای:
پشتیبانی
دسته‌ها
  • برنامه نویسی
  • پایتون و هوش مصنوعی
  • تمرینات دوره ها
  • عمومی
برچسب‌ها
javascript python برنامه نویسی برنامه نویسی، آرایه تمرین جاوا جاوااسکریپت جاوااسکریپت، برنامه نویسی زبان برنامه نویسی هوش مصنوعی پایتون پایتون، ماش همدانی
ورود
ورود با شماره موبایل
ورود با آدرس ایمیل
حساب ندارید؟ ثبت نام کنید
ورود با Google
یا استفاده از شبکه اجتماعی
بازیابی رمز عبور
ورود با شماره موبایل
ورود با آدرس ایمیل
ثبت نام
عضو هستید؟ ورود به حساب
محافظت شده توسط   
دسته بندی دوره ها
دسته بندی بلاگ
دوره های من
دسته بندی دوره ها

اصل آموز

محصولات دوبله شده

  • 6 دوره
اصل آموز

محصولات زبان اصلی

  • 4 دوره

دسته بندی بلاگ

اصل آموز

برنامه نویسی

  • 18 نوشته
اصل آموز

پایتون و هوش مصنوعی

  • 9 نوشته
اصل آموز

تمرینات دوره ها

  • 25 نوشته

دوره های من
برای مشاهده خریدهای خود باید وارد حساب کاربری خود شوید

Envelope Instagram Telegram لوگوی ایتا