نحوه ساختن ابجکت و متد در پایتون

در زبان برنامه‌نویسی پایتون، برای ایجاد شیء (Object) یا موجودیت (Entity)، از کلاس‌ها (Class) استفاده می‌شود. کلاس، یک قالب برای تولید شیء است و شیء‌ها دارای ویژگی‌ها (Attributes) و رفتارها (Behaviors) می‌باشند.

برای تعریف یک کلاس در پایتون، از کلیدواژه class استفاده می‌شود. سینتکس کلی تعریف یک کلاس به صورت زیر است:

class ClassName:
# attributes
# methods

در اینجا، ClassName نام کلاس است. اجرای دستور بالا به تنهایی هیچ کاری نمی‌کند، بلکه برای ایجاد شیء از این کلاس باید آن را فراخوانی کنید.

حال بیایید یک کلاس ساده را تعریف کنیم. برای مثال، یک کلاس Student که دارای ویژگی‌های name و age باشد و یک متد print_info برای چاپ اطلاعات دانشجو باشد

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

def print_info(self):
print(“Name:”, self.name)
print(“Age:”, self.age)

در اینجا، دو ویژگی name و age به کمک متد constructor ( init ) به کلاس اضافه شده‌اند. این متد در زمان ایجاد شیء فراخوانی می‌شود و ویژگی‌های مورد نیاز به عنوان پارامترهای ورودی به آن ارسال می‌شوند. همچنین، متد print_info برای چاپ اطلاعات دانشجو تعریف شده است.

حال می‌توانیم یک شیء از کلاس Student بسازیم و از ویژگی‌ها و متدهای آن استفاده کنیم. به طور مثال

student1 = Student(“Ali”, 20)
student1.print_info()

این کد، یک شیء از کلاس Student به نام student1 ایجاد می‌کند که دارای ویژگی‌های name=”Ali” و age=20 است. سپس، متد print_info براین کد، یک شیء از کلاس Student به نام student1 ایجاد می‌کند که دارای ویژگی‌های name=”Ali” و age=20 است. سپس، متد print_info برای این شیء فراخوانی می‌شود و اطلاعات دانشجو به صورت زیر چاپ می‌شود:

Name: Ali
Age: 20

همچنین، می‌توانیم ویژگی‌های یک شیء را نیز به صورت مستقیم تغییر دهیم. به طور مثال:

student1.age = 21
student1.print_info()

این کد، ویژگی age شیء student1 را به 21 تغییر می‌دهد و سپس متد print_info را برای نمایش اطلاعات دانشجو فراخوانی می‌کند. خروجی این کد به شکل زیر خواهد بود:

Name: Ali
Age: 21

در اینجا، ویژگی age شیء student1 به 21 تغییر کرده است و این تغییر در هنگام فراخوانی متد print_info نیز نمایش داده می‌شود.

در پایتون، متدها (Methods) نیز مانند ویژگی‌ها در داخل کلاس تعریف می‌شوند. متدها همانند توابع (Functions) هستند، با این تفاوت که هرگاه یک متد را برای یک شیء فراخوانی کنید، خود شیء به صورت پنهان به عنوان پارامتر اول به متد ارسال می‌شود. این پارامتر را با نام self شناخته می‌شود و برای دسترسی به ویژگی‌های شیء درون متد استفاده می‌شود.

در مثال Student، متد print_info از self برای دسترسی به ویژگی‌های name و age استفاده می‌کند. در صورتی که به جای self، پارامتر دیگری قرار داده شود، متد به درستی کار نخواهد کرد.

در کلاس Student، ما از متد constructor ( init ) برای تعریف ویژگی‌های کلاس استفاده کردیم. متد constructor هنگامی که یک شیء از کلاس ساخته می‌شود، به صورت خودکار فراخوانی می‌شود و ویژگی‌های کلاس را مقداردهی اولیه می‌کند.

به طور کلی، تعریف یک کلاس در پایتون به شکل زیر است:

class ClassName:
def __init__(self, arg1, arg2, …):
# Constructor
# Define attributes of the class here

def method1(self, arg1, arg2, …):
# Method 1

def method2(self, arg1, arg2, …):
# Method 2

# More methods can be defined here

در این قالب، ما تمامی ویژگی‌ها و متدهای کلاس را درون بلوک کلاس تعریف می‌کنیم. متد constructor همیشه با نام init تعریف می‌شود و ویژگی‌های کلاس درون آن تعریف می‌شوند. در مثال Student، ویژگی‌های name و age در constructor تعریف شده‌اند.

متدهای دیگر کلاس را نیز می‌توان به شکل رفتارهای دیگری که شیء از کلاس می‌تواند داشته باشد، تعریف کرد. در مثال Student، ما متد print_info را تعریف کردیم که اطلاعات دانشجو را چاپ می‌کند.

به طور خلاصه، کلاس‌ها و شیء‌ها در پایتون برای ساختاردهی به کد و تعریف انواع مختلف داده‌ها و رفتارهای آن‌ها استفاده می‌شوند. با تعریف کلاس و سپس ساخت شیء از آن، ما می‌توانیم به راحتی با داده‌ها و رفتارهای آن‌ها در کدمان کار کنیم. همچنین، با استفاده از ویژگی‌ها و متدهای کلاس، ما می‌توانیم رفتار و داده‌های یک شیء را به راحتی تغییر دهیم و کنترل کنیم.

یکی از مزایای استفاده از کلاس‌ها و شیء‌ها در پایتون این است که ما می‌توانیم به راحتی و با استفاده از ارث‌بری، کلاس‌ها را گسترش دهیم. ارث‌بری به معنای مشتق شدن یک کلاس از یک کلاس دیگر است. با ارث‌بری، ما می‌توانیم ویژگی‌ها و رفتارهای یک کلاس را به یک کلاس دیگر اضافه کنیم و یا آن‌ها را بازنویسی کنیم.

به طور کلی، تعریف یک کلاس مشتق شده از یک کلاس پدر به شکل زیر است:

class ChildClassName(ParentClassName):
def __init__(self, arg1, arg2, …):
super().__init__(arg1, arg2, …)
# Define additional attributes of the child class here

def method1(self, arg1, arg2, …):
# Override parent method 1 or define a new method

def method2(self, arg1, arg2, …):
# Override parent method 2 or define a new method

# More methods can be defined here

در این قالب، با استفاده از نام کلاس پدر درون پرانتز کلاس مشتق شده، ما آن را از کلاس پدر مشتق کرده‌ایم. در constructor کلاس مشتق شده، ما ابتدا با استفاده از super().init() constructor کلاس پدر را فراخوانی می‌کنیم و سپس ویژگی‌های جدید کلاس مشتق شده را تعریف می‌کنیم. سپس ما متدهای کلاس پدر را بازنویسی یا تعریف متدهای جدید را انجام می‌دهیم.

به عنوان مثال، می‌توانیم یک کلاس Teacher را از کلاس Person بسازیم. به این صورت که Teacher از Person مشتق شده‌است و برای Teacher، ویژگی salary و متد print_info را تعریف کرده‌ایم.

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

def print_info(self):
print(f”Name: {self.name}, Age: {self.age}”)

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

def print_info(self):
super().

 

جستجو مطالب
جستجو کردن
جدیدترین مطالب
عضویت در خبرنامه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

منوی دسته های خود را در هدرساز -> موبایل -> منوی اصلی موبایل -> نمایش/مخفی -> انتخاب منو، تنظیم کنید
برای دیدن نوشته هایی که دنبال آن هستید تایپ کنید.

آدرس:

رسالت، خیابان هنگام، دانشگاه علم و صنعت

شماره تماس:

09362096232

پست الکترونیک:

info@designmoj.com

ثبت نام یا ورود
همین الان، اطلاعات خود رو وارد کنید و وارد سایت شوید