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


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


چندریختی در زبان برنامه نویسی پایتون
برای دانلود و دیدن آنلاین این درس نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.

هرگاه ما بخواهیم اطلاعات یک معلم را چاپ کنیم باید یک بار تابع چاپ کلاس والد را فراخوانی کنیم و یک بار تابع چاپ خود کلاس معلم را. برای جلوگیری از این کار می‌توانیم تابع چاپ کلاس والد را درون تابع چاپ کلاس معلم فراخوانی کنیم.
def printteacherinfo:
	person. Printpersoninfo(self)
print(self.Teachercod)

چند ریختی(Polymorphism)

زمانی ما از چند ریختی‌ها استفاده می‌کنیم که بخواهیم یک تابع در کلاس‌های مختلف کار متفاوتی انجام دهد. برای مثال اگر ما یک کلاس به نام شکل داشته باشیم و کلاس‌های فرزند آن کلاس مستطیل، دایره و مثلث باشند، و درون هریک از کلاس‌های فرزندمان یک تابع با نام رسم شکل وجود داشته باشد. نکته قابل توجه این است که نام تابع در همه کلاس‌ها یکسان است اما در هر یک از کلاس‌ها متفاوت عمل می‌کند.
هنگام تعریف تابع‌های همنام به این نکته توجه داشته باشید که این تابع ها باید یا تعداد متغیرهایشان متفاوت باشد یا نوع متغیر هایشان. توابعی که هم‌ریخت یا همنام هستند در هنگام فراخوانی مشخص می‌شود که کدام یک فراخوانی شده اند.
def sum(a,b):
	a+b
def sum(a,b,c):
	a+b+c
در زبان پایتون اگر ما دو تابع مانند بالا تعریف کنیم، کامپایلر تابع اول را در نظر نمی‌گیرد و اگر تابع sum را فراخوانی کنیم و دو مقدار برای او ارسال کنیم برنامه خلطا می‌دهد. برای این که یک تابع هم با دو و هم با سه ورودی کار کند باید به یکی از متغیر های آن مقدار none (هیچ‌چی) دهیم. سپس درون تابع با دستور if مشخص کنیم که تابع دو عدد را با هم جمع کند یا سه عدد را. در مثال زیر اگر مقدار c وجود داشته باشد تابع سه عدد را با هم جمع می‌کند در غیر این صورت دو عدد با هم جمع می‌شوند.
def sum(a,b,c=none):
	if(c):
		return a+b+c
	else:
		return a+b

sum(10,20,30)
sum(10,20)
در مثال بالا ما از یک تابع به چند ریخت مختلف استفاده کردیم. این کار استفاده از چندریختی در سطح برنامه بود اما می‌خواهیم چند ریختی را در سطح وراثت نیز پیاده سازی کنیم. یعنی تابعی درون کلاس فرزند تعریف کنیم که همنام آن تابع درون کلاس والد وجود داشته باشد.
حال اگر ما یک کلاس والد به نام شکل تعریف کنیم که یک تابع چاپ به نام (print) داشته باشد و یک کلاس فرزند به نام دایره برای او تعریف کنیم، هرگاه یک شئ از کلاس دایره تعریف کنیم و تابع (print) را فراخوانی کنیم، تابع از کلاس والد فراخوانی می‌شود.
class shap:
	def print(self):
		print("it is a shap")
class circle(shap):
حال اگر درون کلاس فرزند یک تابع با همان نام (print) تعریف کنیم، هنگام فراخوانی تابع خود او فراخوانی می‌شود. با این کار ما دو تابع همنام تعریف کرده‌ایم اما این تابع درون کلاس والد یک عمل انجام می‌دهد و در کلاس فرزند یک عمل دیگر.
class shap:
	def print(self):
		print("it is a shap")
class circle(shap):
	def print(self):
		print("it is a ciscle")
 
کاربران و همراهان همیشگی درسمن، اگر از دوره آموزش پایتون راضی بودید نظر خود را در قسمت تالار گفت وگو بنویسید، از تعامل و همکاری شما ممنونیم .
 
 


برچسب ها :

چندریختی در پایتون Polymorphism در پایتون

نظر بدهید

نشانی ایمیل شما منتشر نخواهد شد .
برای ارسال نظر نیاز است وارد سایت شوید. در صورت نداشتن حساب کاربری عضو شوید.
20 جلسه برای دوره رایگان آموزش پایتون - مقدماتی

درس 0
معرفی آموزش مقدماتی تا متوسط زبان برنامه نویسی پایتون
9 دقیقه / رایگان

درس 1
مقدمه ای بر زبان برنامه نویسی پایتون
14 دقیقه / رایگان

درس 2
دانلود، نصب و راه اندازی پایتون و IDE های قابل استفاده
25 دقیقه / رایگان

درس 3
کلمات کلیدی، انواع داده ها و شناسه ها در زبان برنامه نویسی پایتون
22 دقیقه / رایگان

درس 4
معرفی انواع عملگرها در زبان برنامه نویسی پایتون
33 دقیقه / رایگان

درس 5
آشنایی با برخی از توابع پرکاربرد زبان پایتون
20 دقیقه / رایگان

درس 6
آشنایی با دستورات شرطی if و if-else در زبان پایتون
24 دقیقه / رایگان

درس 7
یادگیری دستور for و range و for-else در پایتون
29 دقیقه / رایگان

درس 8
یادگیری دستور while و معرفی دستورات break و continue در پایتون
19 دقیقه / رایگان

درس 9
معرفی برخی از توابع تعریف شده زبان پایتون(Built-in Functions)
29 دقیقه / رایگان

درس 10
روشهای تعریف و فراخوانی توابع و کار با عبارتهای Lambda
25 دقیقه / رایگان

درس 11
معرفی رشته ها یا داده های ترتیبی و لیست ها در زبان پایتون (Sequence , List)
47 دقیقه / رایگان

درس 12
آشنایی با برخی از عملگرهای کار با لیست ها و معرفی تاپل‌ها در زبان پایتون
21 دقیقه / رایگان

درس 13
معرفی مجموعه ها و دیکشنری‌ ها در زبان برنامه نویسی پایتون
29 دقیقه / رایگان

درس 14
شئ گرایی در زبان برنامه نویسی پایتون-بخش1
34 دقیقه / رایگان

درس 15
شئ گرایی در زبان برنامه نویسی پایتون-بخش2
34 دقیقه / رایگان

درس 16
وراثت در زبان برنامه نویسی پایتون
35 دقیقه / رایگان

درس 17
چندریختی در زبان برنامه نویسی پایتون
25 دقیقه / رایگان

درس 18
ماژول ها در زبان برنامه نویسی پایتون
29 دقیقه / رایگان

درس 19
آشنایی و کار با فایل ها در زبان برنامه نویسی پایتون
31 دقیقه / رایگان

دوره رایگان آموزش پایتون - مقدماتی


تعداد جلسات 20 جلسه
مدت زمان 525 دقیقه
سطح مهارت مقدماتی تا پیشرفته
زبان فارسی
دانشجو 240 دانشجو
گواهی نامه ندارد
قیمت دوره : 0 تومان
درحال برگزاری
مهدی عباسی
مهدی عباسی

درباره مدرس :

مدیر‌ عامل‌ شرکت آریا‌ نرم‌‌ افزار دارنده مدرک کارشناسی‌ ارشد مهندسی کامپیوتر 12‌ سال سابقه تدریس دروس کامپیوتر را در دانشگاههای دولتی، آزاد، پیام‌نور ملایر، شهیدشمسی‌پور تهران و تدریس برنامه‌نویسی در انیستیتو ایزایران، مجتمع فنی و موسسه راه‌آینده تهران دارا میباشد و تا به حال راهنمایی انجمنهای علمی دانشگاه و صدها پروژه دانشجویی را برعهده داشته است. تخصص اصلی: با داشتن گواهی‌نامه‌های معتبر تدریس از انیستیتو‌ ایزایران، راه آینده‌تهران و سازمان‌فنی‌حرفه‌ای، تدریس و آموزش‌ دروس کامپیوتر، ‌برنامه‌نویسی کامپیوتر و کلاسهای کنکور کارشناسی و کارشناسی‌ارشد میباشد.همچنین تجربه داوری و نظارت مسابقات برنامه‌نویسی کشوری‌ACM را در سالهای متعدد داشته و تیم مورد رهبری ایشان در 3سال متوالی مقام اول مسابقات کشوری را از آن خود کرده است.ایشان مقالاتی در زمینه شبکه‌های کامپیوتری، تکنیک‌های وزارت دفاع و ... به ثبت رسانده و مشاور و کارشناس در طراحی و برنامه نویسی بیش از 50‌برنامه کاربردی تحت وب و ویندوز و موبایل میباشد. افتخارات دیگر:کسب مقام دوم ایده‌های برتر در مسابقات استارت‌آپ و بکند کشوری را نام برد.