یادگیری جامع زبان برنامهنویسی پایتون: ویژگیهای کلاس (Class Attributes) - نکته رسمی
ویژگیهای کلاس (Class Attributes)
- ویژگی های کلاس (Class Attributes) در پایتون، متغیرهایی هستند که به کلاس نسبت داده می شوند و نه به نمونه های (instances) خاصی از کلاس. این ویژگی ها توسط تمام نمونه های یک کلاس به اشتراک گذاشته می شوند و برای ذخیره داده هایی که ماهیت عمومی یا مشترک برای همه اشیاء دارند، مفید هستند.
- تعریف ویژگی های کلاس معمولاً در بدنه اصلی کلاس، خارج از هر متد (method) مانند init انجام می شود. این امر باعث می شود که این ویژگی ها در زمان بارگذاری کلاس در حافظه ایجاد شوند.
- دسترسی به ویژگی های کلاس از طریق نام کلاس (مثلاً ClassName.attributename) یا از طریق یک نمونه از کلاس (مثلاً instancename.attributename) امکان پذیر است. با این حال، هنگام تخصیص مقدار جدید به یک ویژگی کلاس از طریق نمونه، یک ویژگی جدید مختص به آن نمونه ایجاد می شود که بر ویژگی کلاس اصلی اولویت پیدا می کند.
- یکی از کاربرد های رایج ویژگی های کلاس، شمارش یا نگهداری تعداد نمونه های ایجاد شده از یک کلاس است. با افزایش شمارنده در متد init، می توانیم این اطلاعات را در سطح کلاس نگهداری کنیم.
- مثال: class MyClass: count 0 def init(self): MyClass.count 1 obj1 MyClass() obj2 MyClass() print(MyClass.count) خروجی: 2
- ویژگی های کلاس می توانند برای نگهداری مقادیر ثابت (constants) که در طول اجرای برنامه تغییر نمی کنند، استفاده شوند. این امر به خوانایی کد و جلوگیری از خطا های ناشی از تغییر ناخواسته مقادیر کمک می کند.
- تغییر مقدار یک ویژگی کلاس به طور مستقیم بر تمام نمونه های موجود و نمونه های آتی کلاس تأثیر می گذارد، مگر اینکه یک نمونه ویژگی با همان نام داشته باشد که بر آن اولویت یابد. این رفتار، مدیریت حالت مشترک را تسهیل می کند.
- استفاده از ویژگی های کلاس به جای تعریف متغیر های سراسری (global variables) برای داده های مشترک، باعث بهبود سازماندهی کد و کاهش احتمال تداخل نام ها می شود و یک الگوی طراحی شیءگرا را تقویت می کند.
- ویژگی های کلاس می توانند انواع داده های مختلفی از جمله اعداد، رشته ها، لیست ها، دیکشنری ها یا حتی اشیاء دیگر را در خود جای دهند و انعطاف پذیری بالایی در طراحی کلاس ها فراهم می آورند.
- برای اطمینان از اینکه تغییرات در ویژگی های کلاس به درستی منعکس شوند و از ایجاد ویژگی های نمونه ای ناخواسته جلوگیری شود، توصیه می شود در صورت امکان، دسترسی و تغییر ویژگی های کلاس از طریق نام کلاس صورت پذیرد.
منبع آموزشی این مطلب
این مطلب برگرفته از محصول آموزشی «پایتون 3: از مبانی تا تسلط بر کدنویسی مدرن» است
برای مشاهده توضیحات کامل، جزئیات دوره و دریافت محصول، روی دکمه زیر کلیک کنید.
اطلاعات بیشتر و دریافت محصول