شی گرایی

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

folderاصول ضروری
comments1 دیدگاه
اساطیر زبان

در این مطلب با ۴ موضوع کلیدی برنامه نویسی پایتون یعنی کلاس، شی، وراثت و سازنده با کمک مثال هایی به زبان ساده آشنا می شوید.

کلاس چیست؟

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

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

 


پایتون

توی این پک فوق العاده، پایتون رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با پایتون اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

به عنوان مثال ، برای هر کارمند بانکی که می خواهد جزئیات مشتری را به صورت آنلاین واکشی کند ، به کلاس مشتری می رود که در آن تمام ویژگی های آن مانند جزئیات معامله ، جزئیات برداشت و سپرده ، بدهی های معوق و غیره ذکر شده است.

در این آموزش ، یاد خواهیم گرفت:

  • نحوه تعریف کلاس های پایتون
  • نحوه کار وراثت
  • سازندگان پایتون

نحوه تعریف کلاس های پایتون

برای تعریف کلاس باید نکات زیر را در نظر بگیرید

مرحله ۱) در پایتون کلاس ها با کلمه کلیدی “class” تعریف می شوند.

class myClass():

مرحله ۲) در داخل کلاس ها می توانید توابع یا متدهایی را تعریف کنید که بخشی از کلاس هستند.

def method1 (self):

print “Guru99”

def method2 (self,someString):

print “Software Testing:” + someString

  • در اینجا method1 را تعریف کردیم که عبارت”Guru99″ را چاپ می کند.
  • متد دیگری که تعریف کردیم ، method2 است که “Software Testing” + someString را چاپ می کند. SomeString متغیری است که با فراخوانی متد دریافت می شود.

مرحله ۳) همه چیز در کلاس تورفتگی دارد ، دقیقا مانند کد موجود در تابع ، حلقه ، شرطif و غیره. هر چیزی که تورفتگی نداشته باشد در کلاس نیست.

C:\Users\Mr\Desktop\071515_1030_PythonClass1.png

توجه: در مورد استفاده از “self” در پایتون

  • آرگومان self به خود شیء اشاره دارد. از این رو از کلمه self استفاده می شود. بنابراین در درون این متد ، self به نمونه خاص این شیء که روی آن کار می شود ، اشاره خواهد کرد.
  • Self نامی است که توسط پایتون برای نشان دادن اولین پارامتر متد های نمونه ترجیح داده می شود. این بخشی از نحو پایتون برای دسترسی به اعضای اشیاء است.

مرحله ۴) ساختن شیء از کلاس

c = myClass()

مرحله ۵) فراخوانی متد در کلاس

c.method1()

c.method2(” Testing is fun”)

  • توجه کنید که وقتی method1 یا method2 را صدا می زنیم ، لازم نیست کلمه کلیدی self را بنویسیم چون به طور خودکار توسط runtime پایتون اداره می شود.
  • فقط باید به آرگومان های non-self اهمیت دهید.

مرحله ۶) کد کامل در اینجا است.

# Example file for working with classes

class myClass():

def method1(self):

print(“Guru99”)

def method2(self,someString):

print(“Software Testing:” + someString)

def main():

# exercise the class methods

c = myClass ()

c.method1()

c.method2(” Testing is fun”)

if __name__== “__main__”:

main()

نحوه کار وراثت

وراثت ویژگی ای است که در برنامه نویسی شی گرا مورد استفاده قرار می گیرد. این به تعریف یک کلاس جدید با تغییر کم یا بدون تغییر از کلاس موجود اطلاق می شود. کلاس جدید کلاس مشتق شده نام دارد و کلاسی که از آن ارث می برد پایه نامیده می شود. پایتون از ارث بری پشتیبانی می کند. همچنین از ارث بری متعدد پشتیبانی هم می کند. یک کلاس می تواند ویژگی ها و متد های رفتاری را از کلاس دیگری به نام زیر کلاس یا کلاس وارث به ارث ببرد.

C:\Users\Mr\Desktop\071515_1030_PythonClass2.png

ساختار ارث بری پایتون

class DerivedClass(BaseClass):

body_of_derived_class

مرحله ۱) کد زیر را اجرا کنید.

# Example file for working with classes

class myClass():

def method1(self):

print(“Guru99”)

class childClass(myClass):

#def method1(self):

#myClass.method1(self);

#print (“childClass Method1”)

def method2(self):

print(“childClass method2”)

def main():

# exercise the class methods

c2 = childClass()

c2.method1()

#c2.method2()

if __name__== “__main__”:

main()

توجه کنید که در childClass ، method1 تعریف نشده است اما از والد myClass ارث بری کرده است. خروجی آن “Guru99” است.

مرحله ۲) خط ۸ و ۱۰ را از کامنت خارج کرده و کد را اجرا کنید.

اکنون method1 در childClass تعریف شده است و خروجی “childClass Method1” به درستی نشان داده می شود.

مرحله ۳) خط ۹ را از کامنت خارج کرده و کد را اجرا کنید.

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

ParentClassName.MethodName(self)

در این نمونه، myClass.method1(self) را صدا می زنیم و Guru99 مطابق انتظار چاپ می شود.

مرحله ۴) خط ۱۹ را از کامنت خارج کرده و کد را اجرا کنید.

Method2 کلاس فرزند صدا زده می شود و “childClass method2” همانطور که انتظار می رود چاپ می شود.

سازنده های پایتون

سازنده یک تابع کلاس است که یک شیء را با مقادیر از پیش تعریف شده مقدار دهی می کند.

با دو تا (_) شروع می شود. این متد __init() __ است.

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

class User:

name = “”

def __init__(self, name):

self.name = name

def sayHello(self):

print(“Welcome to Guru99, ” + self.name)

User1 = User(“Alex”)

User1.sayHello()

خروجی برابر خواهد بود با:

Welcome to Guru99, Alex

مثال پایتون ۲

در بالا کد ها مثال های پایتون ۳ هستند ، اگر می خواهید در پایتون ۲ اجرا کنید ، لطفا کد زیر را در نظر بگیرید.

# How to define Python classes

# Example file for working with classes

class myClass():

def method1(self):

print “Guru99”

def method2(self,someString):

print “Software Testing:” + someString

def main():

# exercise the class methods

c = myClass ()

c.method1()

c.method2(” Testing is fun”)

if __name__== “__main__”:

main()

#How Inheritance works

# Example file for working with classes

class myClass():

def method1(self):

print “Guru99”

class childClass(myClass):

#def method1(self):

#myClass.method1(self);

#print “childClass Method1”

def method2(self):

print “childClass method2”

def main():

# exercise the class methods

c2 = childClass()

c2.method1()

#c2.method2()

if __name__== “__main__”:

main()

خلاصه:

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

  • مکانیسم ارث بری کلاس
  • کلاس مشتق شده هر متد کلاس پایه خود را override می کند.
  • یک متد می تواند متد کلاس پایه را با همین نام فراخوانی کند.
  • کلاس های پایتون توسط کلمه کلیدی “class” تعریف می شوند.
  • در داخل کلاس ها می توانید توابع یا متد هایی را تعریف کنید که جزئی از کلاس هستند.
  • همه چیز در کلاس تو رفتگی دارد ، دقیقاً مانند کد موجود در تابع ، حلقه ، شرط if و غیره.
  • آرگومان self در پایتون به خود شیء اشاره دارد. Self نامی است که توسط پایتون برای نشان دادن اولین پارامتر متد های نمونه در پایتون استفاده می شود.
  • در پایتون ، یک کلاس می تواند ویژگی ها و متد های رفتاری را از کلاس دیگری به نام زیر کلاس یا وارث به ارث ببرد.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

1 دیدگاه. ارسال دیدگاه جدید

  • شاهین قهرمانی فر
    فروردین 27, 1400 6:15 ق.ظ

    با سلام
    برای ایجاد کلاس مثلث جهت محاسبه همزمان مساحت و محیط دو تابع را در برنامه به این صورت نوشتم اما نمیدانم به چه علت متد محیط اجرا میشه ولی متد مساحت کا بر اساس فرمول باید مقدار خود محیط هم فراخوانی کنم اجرا نمیشه ،ممنون میشم راهنمایی کنید
    :Class Triangle
    :def__ init__(self,a,b,c)
    self.a=a
    self.b=b
    self.c=c
    :def enviroment(self)
    return self.a+self.b+self.c/2
    :def area(self)
    return enviroment×(enviroment_self.a)×(enviroment_self.b)×(enviroment_self.c)^0.5

    پاسخ

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

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

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست