شئ گرایی در پایتون

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

شئ گرایی از دو مفهوم کلاس (class) و شئ (object) قابل  تعریف است.

کلاس ها مجموعه ای از ویژگی ها و رفتارهایی هستند و به هر یک از این ویژگی ها یک شئ گفته می شود.

شئ گرایی را می توان با یک مثال واقعی بیان کرد.

برای مثال یک خودرو را می توان یک کلاس و اجزای آن را مانند لاستیک،درب و... را اشیاء آن دانستد.

نحو ایجاد یک کلاس در پایتون

در پایتون کلاس ها با دستور class ایجاد می شوند و باید یک نام دلخواه و متناسب با کلاس را در کنار آن نوشت.

برای مثال ما یک کلاس به نام cars ایجاد کرده ایم که در آن یه متغیر تعریف شده.

class cars :
    x = 2

نکته: بلوک کد نوشته شده در کلاس باید یک تورفتگی با چهار فاصله داشته باشد.

اشیاء در پایتون

هر داده ای که در کلاس ها ایجاد شود، یک شئ است و جزء ویژگی های کلاس است.

برای مثال در کلاس cars سه متغیر مربوط ایجاد کردیم.

class Cars:
    brand= "BMW"
    country= "germany"
    score = 100

نکته: برند و کشور سازنده و امتیاز و... همگی ویژگی هایی هستند که برای هر ماشین دیگری قابل استفاده است.

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

مثال هایی که تاکنون مشاهده کردید، کاربرد مشخصی در واقعیت ندارند و برای ایجاد اشیائ یک کلاس از تابعی بنام ()__init__ استفاده می شود.

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

برای مثال در یک کلاس، تابع را ایجاد می کنیم و دو شئ برند و کشور سازنده خودرو را در آن می سازیم.(این تابع سه پارامتر می پذیرد که پارامتر self اجباری است و پارامتر های دیگر مقادیری هستند که برای افزودن به کلاس است.)

class cars:
  def __init__(self, brand, country):
    self.brand= brand
    self.country= country

در بیرون از بلوک کد کلاس، با فراخوانی کلاس cars، دو پارامتر برند و کشور خودرو را می نویسیم با به عنوان مقدار اشیاء جدید، به کلاس اضافه شوند.

cars("BMW", "germany")

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

تابع ()__str__ می تواند مقداری از یک کلاس را به صورت یک رشته برگرداند.

print(car1)
def __str__(self):
    return f"{self.brand}({self.country})"

نکته: مثال دوم با استفاده از فرمت دهی رشته ها در پایتون نوشته شده است.

پارامتر self در پایتون

در ابتدای هر تابع از کلاس پارامتری اجباری به نام self وجود دارد.(این نام اختیاری است و به صورت پیش فرض self نوشته می شود.)

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

نکته: اگر متد هیچ آرگومانی نداشته باشد هم نوشتن self الزامی است.

تغییر ویژگی های کلاس در پایتون

برای تغییر ویژگی های یک کلاس باید ابتدا ویژگی که قصد تغییر آن را دارید، فراخوانی کنید با عملگر = مقدار جدید را به آن اختصاص دهید.

car1.score= 90

حذف ویژگی های یک کلاس در پایتون

برای حذف یک ویژگی از کلاس از دستور del استفاده می شود.

del car1.score

 

حذف یک شئ از کلاس در پایتون

برای حذف کامل یک شئ (نه ویژگی های آن) از دستور del استفاده می شود و با نوشتن نام شئ موردنظر، به طور کامل حذف می شود.

del car1

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

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

class cars:
  pass

ایجاد متد در کلاس

به کمک متدها می توانیم کارهای از پیش تعریف شده ای روی داده ها انجام دهیم

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

برای مثال در کلاس متدی به نام myfunc ایجاد می کنیم که یک نام را دریافت و فرمت دهی می کند.

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

خلاصه درس

در این درس با مباحث زیر آشنا شدید:

  • مفهوم شئ گرایی در پایتون
  • تعریف کلاس و شئ و توابع آن
  • نحوه ایجاد متد ها در پایتون

توسعه دهندگان
علیرضا چمنی