کلاس ها و اشیاء (Classes and Objects)
در پایتون تقریباً همه چیز یک شی (Object) است. کلاس (Class) در واقع مانند یک الگو یا نقشه است که با استفاده از آن می توان اشیا ایجاد کرد. این ویژگی به شما کمک می کند کدتان ساختارمند و قابل استفاده مجدد باشد.
ایجاد کلاس
برای ساخت کلاس در پایتون از کلمه کلیدی class استفاده می کنیم:
class MyClass:
x = 5ایجاد شی
پس از تعریف کلاس، می توانیم اشیا از روی آن ایجاد کنیم:
p1 = MyClass()
print(p1.x)متد __init__()
متد __init__() متدی سازنده است که هنگام ایجاد شی به طور خودکار اجرا می شود. معمولاً برای مقداردهی اولیه ویژگی ها استفاده می شود:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
p1 = Person("John", 36)
print(p1.name)
print(p1.age)نکته: این متد همیشه هنگام ساخت یک شی جدید فراخوانی می شود.
متد __str__()
متد __str__() مشخص می کند هنگام تبدیل شی به رشته چه مقداری بازگردانده شود:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"{self.name}({self.age})"
p1 = Person("John", 36)
print(p1)ایجاد متد
می توانیم درون کلاس متدهای اختصاصی تعریف کنیم. متدها توابعی هستند که به اشیا تعلق دارند:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def myfunc(self):
print("Hello my name is " + self.name)
p1 = Person("John", 36)
p1.myfunc()پارامتر self
پارامتر self به نمونه فعلی کلاس اشاره دارد و برای دسترسی به متغیرها و متدهای کلاس استفاده می شود. نام آن الزامی نیست اما باید اولین پارامتر متد باشد.
مدیریت ویژگی های شی
می توانید ویژگی های شی را تغییر دهید یا حذف کنید:
p1.age = 40 # تغییر ویژگی
# حذف ویژگی
del p1.age
# حذف شی
del p1استفاده از pass در کلاس
اگر بخواهید کلاسی خالی تعریف کنید باید از pass استفاده کنید تا خطا رخ ندهد:
class Person:
passادامه یادگیری
برای یادگیری بیشتر درباره شی گرایی در پایتون مطالعه کنید یا به بخش وراثت در پایتون بروید.