اشیاء و کلاسها
کلاس ها / اشیاء پایتون
پایتون یک زبان شیء گراست.[۱]
در پایتون تقریباً همه چیز یک شیء با خصوصیتها و متدهایش است.
کلاس شبیه یک سازنده کلاس یا یک «طرح» برای ایجاد اشیاء است.
ایجاد یک کلاس
برای ایجاد یک کلاس از کلمه کلیدی 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
منابع آموزشی