کلاس ها و اشیاء (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
ادامه یادگیری
برای یادگیری بیشتر درباره شی گرایی در پایتون مطالعه کنید یا به بخش وراثت در پایتون بروید.