کلاس
کلاس در حکم یک نقشه برای یک شیء میباشد. شی یک چیز واقعی است که از ساختار، خواص و یا رفتارهای کلاس پیروی میکند. کلاس شامل فیلدها و خواص (properties) و متدها است. وقتی یک شیء میسازید یعنی اینکه یک نمونه از کلاس ساختهاید (در درس ممکن است از کلمات شیء و نمونه به جای هم استفاده شود). در زیر نحوه تعریف کلاس در پایتون نشان داده شده است:
class ClassName: field1; field2; ... fieldN; method1; method2; ... methodN;
کلمه کلیدی class را قبل از نامی که برای کلاسمان انتخاب میکنیم، مینویسیم. در نامگذاری کلاسها هم از روش نامگذاری Pascal استفاده میکنیم. در بدنه کلاس فیلدها و متدهای آن قرار داده میشوند. فیلدها، اعضای دادهای خصوصی هستند که کلاس از آنها برای رفتارها و ذخیره مقادیر خاصیتهایش (property) استفاده میکند. متدها رفتارها یا کارهایی هستند که یک کلاس میتواند انجام دهد. در زیر نحوه تعریف و استفاده از یک کلاس ساده به نام person نشان داده شده است.
1: class Person: 2: 3: name = ""; 4: age = 0; 5: height = 0; 6: 7: def TellInformation(self): 8: print("Name: {0}".format(self.name)); 9: print("Age: {0} years old".format(self.age)); 10: print("Height: {0}cm".format(self.height)); 11: 12: firstPerson = Person(); 13: secondPerson = Person(); 14: 15: firstPerson.name = "Jack"; 16: firstPerson.age = 21; 17: firstPerson.height = 160; 18: firstPerson.TellInformation(); 19: 20: print(); #Separator 21: 22: secondPerson.name = "Mike"; 23: secondPerson.age = 23; 24: secondPerson.height = 158; 25: secondPerson.TellInformation();
Name: Jack Age: 21 years old Height: 160cm Name: Mike Age: 23 years old Height: 158cm
در خطوط 10-1 کلاس Person تعریف شده است. در خط 1 یک نام به کلاس اختصاص دادهایم تا به وسیله آن قابل دسترسی باشد. در داخل بدنه کلاس فیلدهای آن تعریف شدهاند (خطوط 5-3). این سه فیلد تعریف شده خصوصیات واقعی یک فرد در دنیای واقعی را در خود ذخیره میکنند. یک فرد در دنیای واقعی دارای نام، سن، و قد میباشد. در خطوط 10-7 یک متد هم در داخل کلاس به نام TellInformation() تعریف شده است که رفتار کلاسمان است و مثلاً اگر از فرد سوالی بپرسیم در مورد خودش چیزهایی میگوید. در داخل متد کدهایی برای نشان دادن مقادیر موجود در فیلدها نوشته شده است. نکتهای درباره فیلدها وجود دارد و این است که چون فیلدها در داخل کلاس تعریف و به عنوان اعضای کلاس در نظر گرفته شدهاند محدوده آنها یک کلاس است.
این بدین معناست که فیلدها فقط میتوانند در داخل کلاس یعنی جایی که به آن تعلق دارند و یا به وسیله نمونه ایجاد شده از کلاس مورد استفاده قرار بگیرند. در خطوط 13-12 دو نمونه یا دو شیء از کلاس Person ایجاد میکنیم. همانطور که در خطوط 12 و 13 مشاهده می کنید برای ایجاد یک نمونه از یک کلاس، ابتدا یک نام برای شیء انتخاب کرده، علامت مساوی و بعد از آن نام کلاس و یک جفت پرانتز قرار می دهیم. وقتی نمونه کلاس ایجاد شد، سازنده را صدا میزنیم. یک سازنده متد خاصی است که برای مقداردهی اولیه به فیلدهای یک شیء به کار میرود. وقتی هیچ آرگومانی در داخل پرانتزها قرار ندهید، کلاس یک سازنده پیشفرض بدون پارامتر را فراخوانی میکند. درباره سازندهها در درسهای آینده توضیح خواهیم داد.
در خطوط 17-15 مقادیری به فیلدهای اولین شیء ایجاد شده از کلاس Person (first Person) اختصاص داده شده است. برای دسترسی به فیلدها یا متدهای یک شیء از علامت نقطه (دات) استفاده میشود. به عنوان مثال کد firstPerson.name نشان دهنده فیلد name از شیء firstPerson میباشد. برای چاپ مقادیر فیلدها باید متد TellInformation() شی firstPerson را فراخوانی میکنیم. در خطوط 24-22 نیز مقادیری به شی دومی که قبلاً از کلاس ایجاد شده تخصیص میدهیم و سپس متد TellInformation() را فراخوانی میکنیم. به این نکته توجه کنید که firstPerson و secondPerson نسخههای متفاوتی از هر فیلد دارند بنابراین تعیین یک نام برای secondPerson هیچ تاثیری بر نام firstPerson ندارد. ممکن است که این سوال برایتان پیش آمده باشد که کاربرد کلمه self چیست؟ self به شیء ایجاد شده اشاره می کند. چون ما نمی دانیم که چه شیء ای و با چه نامی ایجاد خواهد شد، برای اشاره به شیء ای که ایجاد خواهد شده از self استفاده می شود (معادل آن this در C# می باشد).
سلام. حدود نیم ساعت پیش اشتراک یک ماهه خریدم ولی فعال نشده. باز نوشته پرداخت عضویت.
سلام، اشتراک شما فعال شد
سلام وقت به خیر
عضویت من فعال نشده است.
سلام، مرسی، اشتراک شما فعال شد
سلام . من حق عضویت پرداخت کردم اما برام باز نشده از کلاس ها
سلام، اشتراکتون فعال شد
سلام. دقایقی پیش اشتراک سه ماهه خریدم ولی فعال نشده
سلام، عذرخواهی می کنم بابت مشکل پیش اومده، اشتراک شما فعال شد
سلام من ۲۴ مرداد اکانت خریدم و مشغول مطالعه از درس اول پایتون بودم امروز که به موضوع کلاس رسیدم دیدم باز نوشته پرداخت عضویت میگم شاید من اشتباه میکنم ۱ ماه همون ۱۰ روزه هست والا تا الان که مثل کاربران عادی بودم و چک نکردم همون روز البته مبلغش چنان مبلغ نیس که قابل حرف زدن باشه فقط محض اطلاع خودم میخواستم بدونم ممنون
سلام، بنده تست کردم درسته و اکانتتون مشکل نداره… یک بار حافظه کش مرورگر رو پاک کنید، دوباره وارد سایت بشین، مشکلی بود در خدمتم