مفهوم کلاس و شی گرایی (Class Object) در پایتون (Python)

مفهوم کلاس و شی گرایی (Class Object) در پایتون (Python)

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

هر چیزی در پایتون تقریبا یک شی با تعدادی مشخصه (Property) و متد (Method) است.

یک Class مانند سازنده شی یا "طرح اصلی" برای ایجاد اشیاء دیگر است.

زمان مطالعه: 3 دقیقه
بازدید: 2640
پرسش و پاسخ: 0

ایجاد یک Class در پایتون

برای ایجاد یک Class از کلمه کلیدی Class استفاده می کنیم.

مثال: در این مثال یک Class با نام MyClass با ویژگی با نام X ایجاد می کنیم.

class MyClass:
  x = 5

ایجاد یک Class در پایتون (Python)

ایجاد یک Object یا شی در پایتون

بعد از تعریف Class می توانیم از نام Class برای ایجاد Object استفاده کنیم.

مثال: در این مثال یک Object یا شی با نام P1 از کلاس MyClass ایجاد می کند و مقدار x را چاپ می کند.

p1 = MyClass()
print(p1.x)

ایجاد یک Object یا شی در پایتون (Python)

تابع ()__init__

مثال های بالا که در مورد ایجاد Class ها و Object ها زده شد ساده ترین نوع آن ها هستند و در برنامه های واقعی کاربرد آن چنانی نخواهند داشت.

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

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

از تابع ()__init__ برای اختصاص دادن مقدار به خصوصیت یک Object و یا سایر کارهایی که هنگام ایجاد Object ضروری است استفاده می کنیم.

مثال: در این مثال یک Class با نام Person ایجاد می کنیم و از تابع ()__init__ برای اختصاص دادن مقادیر برای خصوصیات name و age استفاده می کنیم.

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

تابع ()__init__ در پایتون (Python)

توجه: هر بار که Class برای ایجاد Object جدید استفاده می شود، تابع __init__() به طور خودکار فراخوانی می شود.

متد های Object یا شی

Objects می توانند شامل متدهایی باشند. متدها در اشیاء توابعی هستند که به Object تعلق دارند.

مثال: بیایید یک متد در کلاس Person ایجاد کنیم.

در این مثال یک تابع ایجاد می کنیم که کلمه “hello” را چاپ کند و آن را روی Object ایجاد شده 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()

متد های Object یا شی در پایتون (Python)

توجه: پارامتر 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()

پارامتر self در پایتون (Python)

تغییر خصوصیات Objects

می توانید خصوصیات یک Object را مانند مثال زیر تغییر دهید.

مثال: در این مثال سن P1 را بر روی 40 تنظیم کنید.

p1.age = 40

تغییر خصوصیات Objects در پایتون (Python)

حذف ویژگی های یک Object

با استفاده از کلمه کلیدی del می توانید خصوصیات در Objects را حذف کنید.

مثال: در این مثال ویژگی age را از شی P1 حذف می کنیم.

del p1.age

حذف ویژگی های یک Object در پایتون (Python)

در این مثال به دلیل اینکه ویژگی age را حذف کردیم، موقع چاپ با خطا مواجه می شویم.

حذف یک Object

با کلمه کلیدی del می توانید Objects را نیز حذف کنید.

مثال: در این مثال شی P1 را حذف کرده ایم.

del p1

حذف یک Object در پایتون (Python)

دستور pass در کلاس ها

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

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

class Person:
  pass

دستور pass در کلاس ها در پایتون (Python)

مطالعه بیشتر در مورد شی گرایی : برنامه نویسی شی گرا یا object oriented programming چیست؟

بهزاد میرزازاده
مسیر درست با پرسش های درست ساخته می شود

مشاهده تمام مطالب نویسنده