یکی از مفاهیم مهم در برنامه نویسی و در زبان پایتون شی‌گرایی در پایتون است، برنامه‌نویسی شیء‌گرا (Object Oriented Programming) یا به طور خلاصه OOP برای اولین بار در سال 1960 معرفی شد. شیء‌گرایی یکی از مهم‌ترین مفاهیم برنامه‌نویسی است که در آن طراحی نرم‌افزار به جای منطق و توابع حول کلاس‌ها و اشیاء سازماندهی می‌شود.

با استفاده از این الگوی برنامه‌نویسی می‌توان کدها را در کلاس‌ها دسته‌بندی کرد و از این کلاس‌ها نمونه‌های کوچکتر ساخت تا بتوان کدنویسی دنیای واقعی و روابط بین چیزها را پیاده‌سازی کرد، مانند روابط شرکت‌ها و کارمندان.

در شی‌گرایی، موارد موجود در دنیای واقعی بعنوان اشیاء، مدل‌سازی می شوند که دارای داده‌هایی مرتبط هستند و کار خاصی را انجام می‌دهند. برنامه‌نویسی شیء‌گرا به شما قابلیت استفاده مجدد از کد را می‌دهد و از تکرار در کدنویسی جلوگیری می‌کند. زبان برنامه‌نویسی پایتون یک زبان شیءگرا است و مفهوم شیءگرایی در این زبان بسیار حائز اهمیت می‌باشد.

کلاس مانند یک فرم یا یک طرح اولیه است که برای ایجاد اشیاء از آن استفاده می شود. کلاس‌ها رفتار کلی اشیاء را مشخص می‌کنند. متدها توابعی درون کلاس‌ها هستند که رفتارهایی را که یک شیء می‌تواند با داده‌هایی که دارد انجام دهد را تعیین می‌کنند.

بعنوان مثال، یک شیء در کلاس می‌تواند یکی از کارمندان یک شرکت با properties: نام، نام خانوادگی، سن و آدرس؛ و behaviors: راه رفتن، نفس کشیدن، کار کردن و صحبت کردن باشد.

و یا می‌تواند یک اتومبیل در کلاس Car باشد با properties: سرعت، مدل، قیمت و شرکت سازنده؛ و behaviors: روشن شدن، خاموش شدن، دنده عوض کردن و حرکت کردن باشد. بعنوان مثال یک شیء با نام Benz در کلاس Car داریم.

در ادامه مثال از شی گرایی در پایتون کارمندان یک شرکت را پیاده‌سازی می‌کنیم:

در پایتون، کلاس را به صورت زیر تعریف کرده و سپس از متد سازنده __init__() برای مشخص کردن ویژگی‌های نمونه‌های کلاس مورد نظر خود استفاده می‌کنیم:

 

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

 

 

یک کلاس کارمند داریم که در آن اطلاعاتی در مورد ویژگی‌ها و رفتارهایی که یک کارمند دارد، ذخیره می‌شود. یک نمونه (instance) یک شیء از کلاس ساخته شده می‌باشد.

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

عباراتی که با self در مثال مشاهده می کنید، کارهای زیر را انجام می‌دهند:

self.name = name یک ویژگی به نام name ایجاد می‌کند و مقدار پارامتر name را به آن اختصاص می‌دهد.

self.age = age یک ویژگی به نام age ایجاد می‌کند و مقدار پارامتر سن را به آن اختصاص می‌دهد.

Self.job = job یک ویژگی به نام job ایجاد می‌کند و مقدار پارامتر شغل را به آن اختصاص می‌دهد.

در ادامه یک نمونه از کلاس کارمند ایجاد می‌کنیم:

class Employee:
    def __init__(self, name, age, job):
        self.name = name
        self.age = age
        self.job = job
        
employee = Employee('John', 32, 'programmer')

name = employee.name
age = employee.age
job = employee.job

print(name)
print(age)
print(job)

-------------------------------
John
32
programmer

یک کارمند با نام John، سن 32 و شغل برنامه‌نویس یک نمونه از کلاس کارمند است.

امیدواریم این مقاله شی‌گرایی در پایتون از وبلاگ کدیتی براتون مفید بوده باشه