آموزش کلاس و Object در پایتون

آبجکت در پایتون

  • پایتون یک زبان برنامه نویسی شی گرا است.

  • تقریباً همه چیز در پایتون یک شی (یا آبجکت)، با خواص و متدهای خودش است.

  • یک کلاس در واقع یک سازنده شی و یک "طرح" برای ایجاد آن است.

ایجاد یک کلاس

برای ایجاد کلاس از کلیدواژه 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)

متد های آبجکت

اشیاء همچنین می توانند حاوی یک یا چند متد باشند. متد یک شی یعنی تابعی که به آن شی تعلق دارد.

مثال

تابعی تعریف کنید که یک تبریک چاپ می کند:

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 نامگذاری شود، می تواند هر نامی داشته باشد اما باید اولین پارامتر هر تابع در کلاس باشد:

مثال

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()

تغییر مقدار ویژگی ها

شما می توانید خصوصیات یک شی را به صورت زیر تغییر دهید:

مثال

p1.age = 40

حذف ویژگی ها

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

مثال

del p1.age

حذف شی

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

مثال

del p1

دستور pass

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

مثال

class Person:
  pass
منتشر شده در رسانیکا، پلتفرم اشتراک‌گذاری محتوا