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

کلاس/شیء Python

Python یک زبان برنامه‌نویسی مبتنی بر شیء است.

تقریباً همه چیز در Python شیء است و ویژگی‌ها و روش‌ها دارند.

کلاس (Class) مشابه تابع ساختار شیء است یا بلوکی است که برای ایجاد شیء استفاده می‌شود.

ایجاد کلاس

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

مثال

با استفاده از ویژگی به نام x، یک کلاس به نام MyClass ایجاد کنید:

class MyClass:
  x = 5

اجرای مثال

ایجاد شیء

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

مثال

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

p1 = MyClass()
print(p1.x)

اجرای مثال

توابع __init__()

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

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

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

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

مثال

یک کلاس به نام Person ایجاد کنید و با استفاده از توابع __init__() به name و age ارزش‌گذاری کنید:

class Person:
  def __init__(self, name, age):
    self.name = name
    self.age = age
p1 = Person("Bill", 63)
print(p1.name)
print(p1.age)

اجرای مثال

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

روش شیء

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

اجازه دهید که در کلاس 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("Bill", 63)
p1.myfunc()

اجرای مثال

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

پارامتر self

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

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

مثال

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

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("Bill", 63)
p1.myfunc()

اجرای مثال

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

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

مثال

سن p1 را به 40 تنظیم کنید:

p1.age = 40

اجرای مثال

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

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

مثال

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

del p1.age

اجرای مثال

حذف اشیاء

استفاده del کلید حذف اشیاء:

مثال

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

del p1

اجرای مثال

عبارت pass

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

مثال

class Person:
  گذر

اجرای مثال