آموزش پایتون

مدیریت فایل

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

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

پایتون یک زبان برنامه نویسی شی گرا است.
تقریباً همه چیز در پایتون یک شیء است، با ویژگی و متدهای آن.
یک کلاس مانند یک سازنده شیء یا یک “طرح” برای ایجاد اشیا است.

ساخت یک کلاس

برای ایجاد یک کلاس، از کلمه کلیدی class استفاده کنید:

مثال

ایجاد یک کلاس به نام MyClass با یک ویژگی به نام x:
				
					class MyClass:
  x = 5
				
			

ساخت شیء (object)

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

مثال

ایجاد یک شی به نام p1 و چاپ مقدار x:
				
					p1 = MyClass()
print(p1.x)
				
			

تابع __init__()

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

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

همه کلاس ها دارای تابعی به نام __init__() هستند که همیشه زمانی که کلاس شروع می شود اجرا می شود.

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

مثال

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

p1 = Person("John", 36)

print(p1.name)
print(p1.age)
				
			
نکته: تابع __init__() به طور خودکار هر بار که از کلاس برای ایجاد یک شی جدید استفاده می شود، فراخوانی می شود.

تابع __str__()

تابع __str__() کنترل می کند که وقتی شیء یک کلاس به عنوان یک رشته نمایش داده می شود، چه چیزی باید برگردانده شود. اگر تابع __str__() تنظیم نشده باشد، نمایش رشته ای شیء برگردانده می شود:

مثال

نمایش رشته ای یک شی بدون تابع __str__():
				
					class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age

p1 = Person("John", 36)

print(p1)
				
			

مثال

نمایش رشته ای یک شی با تابع __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)
				
			

متدهای شیء

اشیاء همچنین می توانند حاوی متدهایی باشند. متدها در اشیاء توابعی هستند که به شیء تعلق دارند.
اجازه دهید یک متد در کلاس Person ایجاد کنیم:

مثال

تابعی را وارد کنید که یک تبریک چاپ می کند و آن را روی شیء 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

پارامتر self اشاره ای به نمونه فعلی کلاس است و برای دسترسی به متغیرهایی که متعلق به کلاس هستند استفاده می شود.

نیازی نیست که حتما self نامگذاری شود، شما می توانید آن را هر چه دوست دارید صدا بزنید، اما باید اولین پارامتر هر تابع در کلاس باشد:

مثال

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

				
					class Person:
  def __init__(mysillyobject, name, age):
    mysillyobject.name = name
    mysillyobject.age = age

  def myfunc(abc):
    print("Hello my name is " + abc.name)

p1 = Person("John", 36)
p1.myfunc()
				
			

تغییر ویژگی‌های شیء

شما می توانید ویژگی های اشیاء را مانند مثال زیر تغییر دهید:

مثال

age را در شیء p1 روی 40 تنظیم کنید:

				
					p1.age = 40
				
			

حذف ویژگی‌های شیء

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

مثال

ویژگی age را از شی p1 حذف کنید:

				
					del p1.age
				
			

حذف اشیاء

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

مثال

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

				
					del p1
				
			

عبارت pass

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

مثال

				
					class Person:
  pass
				
			

آموزش پایتون

مدیریت فایل