Python Classes and Objects

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

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

تقریبا همه چیز در پایتون یک شئ با خواص و متد های خاص خود است.

یک کلاس مانند سازنده یک شئ است یا یک طرح برای ایجاد اشیاء است.

 

ساختن کلاس

برای ساختن یک کلاس باید از کلمه کلیدی class استفاده کرد.

ساخت کلاسی با نام My_class با یک عضو (property) به نام x

class MyClass:
  x = 5

ایجاد یک شئ

حالا می‌توانیم از کلاس My_classبرای ایجاد یک شئ استفاده کنیم.

ایجاد یک شئ با نام P1 و چاپ مقدار x

p1 = MyClass()
print(p1.x)

تابع ()__init__

مثالی که مشاهده کردید شامل یک کلاس و یک شئ ساده از آن می‌شد (خیلی ساده). اما این چیزی نیست که در دنیای واقعی برنامه هایمان بخواهیم از آن استفاده کنیم.

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

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

استفاده از تابع ()__init__ برای مقدار دهی به اشیاء یا دیگر ویژگی های لازم در هنگام ایجاد شئ است.

مثال: ایجاد کلاسی به نام person با متد ()__init__ برای مقدار دادن به پارامتر های age و name

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

p1 = Person("John", 36)

print(p1.name)
print(p1.age)

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

 

متد های اشیاء

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

بیایید یک متد برای کلاس person ایجاد کنیم.

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 بگذارید. می‌توانید هر نامی را برای آن انتخاب کنید اما حتما باید اولین پارامتر از هر تابعی در کلاس باشد.

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

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

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

تغیر دادن ویژگی های یک شئ - حذف ویژگی - حذف شئ

می‌توانید خیلی ساده ویژگی یک شئ را تغییر دهید.

p1.age = 40

یک ویژگی را حذف کنید.

del p1.age

یک شئ را حذف کنید.

del p1