کلاس
کلاس در حکم یک نقشه برای یک شیء میباشد. شی یک چیز واقعی است که از ساختار، خواص و یا رفتارهای کلاس پیروی میکند. کلاس شامل فیلدها و خواص (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# می باشد).
باسلام . من اشتراک رو خریدم ولی صفحه ها برام فعال نشد …
سلام، اشتراک شما فعال شد
سلام اموزش ها رو تا چندتا دیگه جلو رفتم تعدادی از نمونه کدها و الگو ها ایرادات کوچکی داشت مثلا سمیکالن جلوی دستورات
سلام اشتراک خریدم ولی فعال نشد
سلام
اشتراک شما فعال شد
حق عضویت رو پرداخت کردم ولی فعال نشده
سلام، اشتراک شما فعال شد
سلام . من اشتراک رو خریدم ولی فعال نمیشه
سلام، فعال شد. تست بفرمایید
سلام خسته نباشید
مبلغ اشتراک واریز شد زحمت باز کردن سایت رو بکشید . تشکر
سلام، مرسی
اشتراکتون فعال شد
hagh ozviyato pardakht kardm pas chera hamchenan ghofle
سلام، فعال شد و می تونید استفاده کنید
سلام من حق عضویت رو پرداخت کردم ولی همچنان قفل هستند آیتم ها
سلام، الان فعاله و می تونید استفاده کنید
سلام
مهندس جهت داشتن یک نسخه مطالبتون چه باید کرد؟
جای هست که تهیه کنیم که همین مطالب مفیدتون که هست باشه
سلام
تقریبا همه مطالب رو در قالب کتاب و ویدئو تو لینک زیر قرار دادم
http://www.w3-farsi.com/product
در این مثال از self استفاده نشده است. لطفا مثالی از استفاده self بگذارید.
سلام، درس بعد رو بخونید