اشیاء و کلاس‌ها

از ویکی‌کد، دانشنامهٔ برنامه‌نویسی
پرش به ناوبری پرش به جستجو
Main Page Tutorial
Python-menu.png
موارد آموزشی
۱خانه
۲مقدمه
۳شروع کار
۴دستور زبان
۵توضیحات
۶متغیرها
۷انواع داده‌ها
۸اعداد
۹تبدیل نوع
۱۰رشته‌ها
۱۱Booleans
۱۲عملگرها
۱۳لیست‌ها
۱۴تاپل‌ها
۱۵مجموعه‌ها
۱۶دیکشنری‌ها
۱۷If...Else
۱۸حلقهٔ While
۱۹حلقهٔ For
۲۰توابع
۲۱Lambda
۲۲آرایه‌ها
۲۳کلاس‌ها / اشیاء
۲۴ارث‌بری
۲۵Iteratorها
۲۶دامنه
۲۷ماژول‌ها
۲۸تاریخ و زمان
۲۹JSON
۳۰RegEx
۳۱PIP
۳۲Try...Except
۳۳ورودی کاربر
۳۴قالب‌بندی رشته
مدیریت فایل
یادگیری ماشین
MySQL در پایتون
MongoDB در پایتون
مرجع پایتون
مرجع ماژول
چگونه در پایتون؟
مثال‌های پایتون

کلاس ها / اشیاء پایتون

پایتون یک زبان شیء گراست.[۱]

در پایتون تقریباً همه چیز یک شیء با خصوصیت‌ها و متدهایش است.

کلاس شبیه یک سازنده کلاس یا یک «طرح» برای ایجاد اشیاء است.

ایجاد یک کلاس

برای ایجاد یک کلاس از کلمه کلیدی class استفاده می‌شود:

مثال

یک کلاس به نام MyClas با خصوصیتی به نام x ایجاد می‌کند:

1 class MyClass:
2   x = 5


مشاهدهٔ نتیجه


ایجاد شیء

حال می‌توانیم از کلاس myClass برای ایجاد اشیاء استفاده کنیم:

مثال

یک شیء به نام p1 ایجاد می‌کند و مقدار x را چاپ می‌کند:

1 p1 = MyClass()
2 print(p1.x)


مشاهدهٔ نتیجه


تابع __init__()

مثال‌های بالا ساده‌ترین شکل کلاس‌ها و اشیاء هستند و برای استفاده در برنامه‌های کاربردی واقعی خیلی مفید نیستند.

برای فهم معنای کلاس‌ها باید تابع داخلی __init__() را بفهمیم.

همهٔ کلاس‌ها تابعی به نام __init__() دارند که همیشه هنگام تأسیس (به انگلیسی: Initiate) کلاس اجرا می‌شود.

از تابع __init__() برای تخصیص مقدار به خصوصیت‌های Properties شیء یا عملیات دیگری استفاده می‌شود که انجام آنها هنگام ایجاد شیء ضروری است.

مثال

یک کلاس به نام Person ایجاد می‌کند، از تابع __init__() برای تخصیص مقدارها به name و age استفاده می‌کند:

1 class Person:
2   def __init__(self, name, age):
3     self.name = name
4     self.age = age
5 
6 p1 = Person("John", 36)
7 
8 print(p1.name)
9 print(p1.age)


مشاهدهٔ نتیجه

توجه: هربار که کلاس برای تولید شیء جدید استفاده شود، تابع __init__() بطور خودکار فراخوانی می‌شود.

متدهای شیء

اشیاء می‌توانند متد هم داشته باشند. متدها در اشیاء توابعی هستند که به شیء تعلق دارند.

می‌خواهیم یک متد در کلاس person ایجاد کنیم:

مثال

تابعی را ایجاد می‌کند که یک سلام چاپ می‌کند و آن را در شیء p1 اجرا می‌کند:

 1 class Person:
 2   def __init__(self, name, age):
 3     self.name = name
 4     self.age = age
 5 
 6   def myfunc(self):
 7     print("Hello my name is " + self.name)
 8 
 9 p1 = Person("John", 36)
10 p1.myfunc()


مشاهدهٔ نتیجه


توجه: پارامتر self ارجاعی به نمونه (به انگلیسی: Instance) کلاس است، و برای دسترسی به متغیری که به کلاس تعلق دارد استفاده می‌شود.

پارامتر self

پارامتر self ارجاعی (به انگلیسی: Reference) به نمونه فعلی کلاس است و برای دسترسی به متغیری که متعلق به کلاس است استفاده می‌شود.

لازم نیست نامش حتماً self باشد، می‌توانید آن را هرچه که می‌خواهید بنامید، اما باید اولین پارامتر هر تابعی در کلاس باشد:

مثال

از کلمه‌های mysillyobject و abc بجای self استفاده می‌کند:

 1 class Person:
 2   def __init__(mysillyobject, name, age):
 3     mysillyobject.name = name
 4     mysillyobject.age = age
 5 
 6   def myfunc(abc):
 7     print("Hello my name is " + abc.name)
 8 
 9 p1 = Person("John", 36)
10 p1.myfunc()


مشاهدهٔ نتیجه


تغییر خصوصیت های (به انگلیسی: Properties) شیء

می‌توانید خصوصیت‌های شیء را به این روش تغییر دهید:

مثال

p1.age = 40


مشاهدهٔ نتیجه


حذف خصوصیت های شیء

می‌توانید با استفاده از کلمه کلیدی del خصوصیت‌های شیء را حذف کنید:

مثال

خصوصیت age را از شیء p1 حذف می‌کند:

del p1.age


مشاهدهٔ نتیجه


حذف اشیاء

می‌توان با استفاده از کلمه کلیدی del اشیاء را حذف کرد:

مثال

شیء p1 را حذف می‌کند:

del p1


مشاهدهٔ نتیجه


عبارت pass

تعریف class نباید خالی باشد، اما اگر به هر دلیلی یک تعریف class بدون محتوا داشتید، عبارت pass را برای جلوگیری از ایجاد خطا قرار دهید.

مثال

کلاس Person:

1 class Person:
2   pass


مشاهدهٔ نتیجه



منابع آموزشی