آموزش کلاس و 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
مجموعهآموزش پایتون از صفر(23 پست)
1.پایتون چیست؟ مقدمه پایتون10 ماه قبل2.برنامه نویسی پایتون را چطور شروع کنیم؟10 ماه قبل3.آموزش سینتکس (نحوه نوشتن) پایتون10 ماه قبل4.آموزش متغیرهای پایتون10 ماه قبل5.آموزش انواع داده در پایتون10 ماه قبل6.آموزش اعداد در پایتون10 ماه قبل7.آموزش Casting (تبدیل نوع داده) در پایتون10 ماه قبل8.آموزش رشته در پایتون10 ماه قبل9.آموزش بولین یا Boolean در پایتون10 ماه قبل10.آموزش عملگرهای پایتون10 ماه قبل11.آموزش لیست در پایتون10 ماه قبل12.آموزش تاپل یا چندتایی در پایتون9 ماه قبل13.آموزش Set یا مجموعه در پایتون8 ماه قبل14.آموزش نوع داده دیکشنری در پایتون8 ماه قبل15.آموزش شرط if ... else در پایتون8 ماه قبل16.آموزش حلقه while در پایتون8 ماه قبل17.آموزش حلقه for در پایتون8 ماه قبل18.آموزش توابع در پایتون8 ماه قبل19.آموزش توابع Lambda (لامبدا) در پایتون8 ماه قبل20.آموزش آرایه در پایتون7 ماه قبل21.آموزش کلاس و Object در پایتون7 ماه قبل22.آموزش ارث بری یا وراثت در پایتون7 ماه قبل23.آموزش تکرارگر یا iterator در پایتون7 ماه قبل

کامنت ها