در این مطلب، ویدئو آموزش پایتون 23 – چند شکلی در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,469 –> 00:00:04,259
سلام به همه شما خوش آمد می گویم، بنابراین در این
2
00:00:04,259 –> 00:00:06,560
ویدیو قصد دارم در مورد
3
00:00:06,560 –> 00:00:10,410
چندشکلی در پایتون توضیح دهم و این
4
00:00:10,410 –> 00:00:12,389
چندشکلی را می توان با استفاده از
5
00:00:12,389 –> 00:00:15,839
مفاهیم قبلاً و بارگذاری بیش از حد به دست آورد، حالا اجازه
6
00:00:15,839 –> 00:00:18,619
دهید ببینیم چند شکلی در پایتون چیست،
7
00:00:18,619 –> 00:00:22,020
بنابراین گاهی اوقات یک شی در انواع مختلفی می آید.
8
00:00:22,020 –> 00:00:25,080
یا فرم می دهد، بنابراین اگر یک
9
00:00:25,080 –> 00:00:27,210
دکمه دارید، بنابراین مسیرهای مختلف زیادی وجود دارد،
10
00:00:27,210 –> 00:00:28,560
مانند یک دکمه دور دکمه های جفت علامت زده نشده
11
00:00:28,560 –> 00:00:31,140
یا دکمه را با برخی
12
00:00:31,140 –> 00:00:34,260
تصویر قرار دهید، اما آنها منطق یکسانی دارند،
13
00:00:34,260 –> 00:00:36,540
بنابراین هر زمان که روی دکمه کلیک کنیم
14
00:00:36,540 –> 00:00:39,210
، همان کار را انجام می دهد و ما می تواند
15
00:00:39,210 –> 00:00:41,760
با استفاده از روش مشابه به آنها دسترسی داشته باشد، بنابراین این
16
00:00:41,760 –> 00:00:43,860
ایده اساساً به عنوان چندشکلی نامیده می شود،
17
00:00:43,860 –> 00:00:46,289
یعنی یک چیز وجود دارد که می تواند
18
00:00:46,289 –> 00:00:48,870
چندین رفتار داشته باشد، بنابراین یک چیز می تواند
19
00:00:48,870 –> 00:00:50,280
20
00:00:50,280 –> 00:00:52,620
بر اساس ورودی ما به روش های مختلف رفتار کند،
21
00:00:52,620 –> 00:00:55,680
بنابراین یک مفهوم چندشکلی است، بنابراین
22
00:00:55,680 –> 00:00:57,719
چندشکلی است. را می توان با استفاده از
23
00:00:57,719 –> 00:01:00,059
مفهوم overriding و overloading در
24
00:01:00,059 –> 00:01:02,730
پایتون به دست آورد. حال اجازه دهید ببینیم که
25
00:01:02,730 –> 00:01:05,459
تست overriding روش چیست تا بتوان
26
00:01:05,459 –> 00:01:08,159
معنی یا پایان روش را به روز کرد.
27
00:01:08,159 –> 00:01:09,930
متدها و همچنین متغیرها همه ما میتوانیم
28
00:01:09,930 –> 00:01:11,280
متدها را بنویسیم و همچنین میتوانیم
29
00:01:11,280 –> 00:01:13,380
متغیرها را بیش از حد ارزیابی کنیم، بنابراین در
30
00:01:13,380 –> 00:01:16,830
اصل به معنای داشتن دو متد با
31
00:01:16,830 –> 00:01:19,369
نام یکسان اما انجام وظایف مختلف
32
00:01:19,369 –> 00:01:21,420
داشتن دو روش با نام یکسان
33
00:01:21,420 –> 00:01:24,240
اما وظایف متفاوت است و به این معنی است که
34
00:01:24,240 –> 00:01:26,450
یکی از متد دیگری را باطل می
35
00:01:26,450 –> 00:01:29,400
کند بسیار خوب، بنابراین به عنوان مثال اجازه دهید برای شما
36
00:01:29,400 –> 00:01:32,280
مثالی را در اینجا بزنم، به عنوان مثال من یک
37
00:01:32,280 –> 00:01:35,610
کلاس a و همچنین کلاس B دارم، بنابراین در کلاس
38
00:01:35,610 –> 00:01:38,280
A یک متد به نام a برای مثال ها تعریف کرده اند،
39
00:01:38,280 –> 00:01:40,920
فقط یک متد نمایش درست ایجاد کرده است
40
00:01:40,920 –> 00:01:44,159
و همان روشی را که من
41
00:01:44,159 –> 00:01:46,979
دوباره در کلاس B ایجاد کردم درست از
42
00:01:46,979 –> 00:01:49,470
a به کلاس B گسترش می یابد اکنون B یک
43
00:01:49,470 –> 00:01:52,140
کلاس j از a now است وقتی آنها همان
44
00:01:52,140 –> 00:01:55,110
متد را در کلاس B دریافت می کنند بنابراین کاری که ما در اینجا انجام می دهیم
45
00:01:55,110 –> 00:01:57,840
این است که این روش را باطل می کنیم.
46
00:01:57,840 –> 00:02:00,390
وقتی من یک شی برای کلاس B ایجاد می کنم
47
00:02:00,390 –> 00:02:02,670
که متدی را که در کلاس B ایجاد شده است اجرا می کند
48
00:02:02,670 –> 00:02:04,890
و وقتی این
49
00:02:04,890 –> 00:02:07,439
متد را از کلاس A فراخوانی می کنم و
50
00:02:07,439 –> 00:02:10,830
این را از کلاس okay اجرا می کند، بنابراین به این می گویند
51
00:02:10,830 –> 00:02:13,180
متد overriding اکنون ببینیم آیا شما
52
00:02:13,180 –> 00:02:15,450
مثال هایی در مورد مفهوم
53
00:02:15,450 –> 00:02:18,150
نادیده انگاشتن روش به طور عملی، بنابراین اجازه دهید pycharm را باز کنم،
54
00:02:18,150 –> 00:02:21,099
بنابراین در اینجا می خواهم یک
55
00:02:21,099 –> 00:02:23,590
فایل پایتون جدید ایجاد کنم، نام آن را به عنوان
56
00:02:23,590 –> 00:02:29,140
حجم چندشکلی ARP در حال آزمایش است و
57
00:02:29,140 –> 00:02:30,549
روی OK کلیک کنید،
58
00:02:30,549 –> 00:02:32,769
اکنون کاری که می توانم انجام دهم این است که فقط
59
00:02:32,769 –> 00:02:34,540
سعی می کنم. برای روی آن، وسیله نقلیه بنابراین یا هر
60
00:02:34,540 –> 00:02:36,459
مفهومی را می توان برای متغیرها
61
00:02:36,459 –> 00:02:39,159
و همچنین روش استفاده کرد، بنابراین در این مثال می
62
00:02:39,159 –> 00:02:41,049
خواهم به شما نشان دهم که چگونه یک
63
00:02:41,049 –> 00:02:44,560
وسیله نقلیه را نادیده بگیرید چگونه یک موجود را نادیده بگیرید، بنابراین
64
00:02:44,560 –> 00:02:46,209
کاری که می توانم انجام دهم این است که ابتدا یک نوع را ایجاد کنم.
65
00:02:46,209 –> 00:02:49,450
mass ok والد و در داخل این
66
00:02:49,450 –> 00:02:51,010
کلاس من یک متغیر ایجاد می کنم به
67
00:02:51,010 –> 00:02:53,049
نام name برابر است با چیزی به نام
68
00:02:53,049 –> 00:02:55,840
این one خوب این یک کلاس ساده است
69
00:02:55,840 –> 00:02:58,540
که حاوی یک متغیر است حالا
70
00:02:58,540 –> 00:03:00,700
یک کلاس دیگر ایجاد می کنم و آن را
71
00:03:00,700 –> 00:03:02,530
به عنوان تغییر آخرین و این نام می گذارم کلاس
72
00:03:02,530 –> 00:03:05,769
از کلاس والد تمدید شد این کلاس
73
00:03:05,769 –> 00:03:08,560
از کلاس والد تمدید شد اکنون دوباره یک
74
00:03:08,560 –> 00:03:09,969
بار دیگر همان وسیله نقلیه را
75
00:03:09,969 –> 00:03:12,280
در اینجا ایجاد خواهم کرد، فقط می گویم اما این بار
76
00:03:12,280 –> 00:03:14,560
با نام متفاوتی که به درستی گشت
77
00:03:14,560 –> 00:03:17,409
می زنم، اکنون بدون تغییر است، من
78
00:03:17,409 –> 00:03:20,769
یک ob ایجاد خواهم کرد. ject برای کلاس زنجیره بیایید
79
00:03:20,769 –> 00:03:23,290
بگوییم و همین الان تغییر دهیم، بنابراین آنچه اتفاق میافتد
80
00:03:23,290 –> 00:03:27,489
این است که وقتی نام نقطه obj را به
81
00:03:27,489 –> 00:03:29,769
دست میآورم و به این متغیر دسترسی پیدا میکنم
82
00:03:29,769 –> 00:03:33,129
و بیایید این مقدار را انتخاب کنیم،
83
00:03:33,129 –> 00:03:36,069
نام نقطهای را چاپ
84
00:03:36,069 –> 00:03:38,260
کنیم، بنابراین چه چیزی در اینجا چاپ میشود. یک
85
00:03:38,260 –> 00:03:41,199
متغیر شی برای تغییر آخرین سمت راست ایجاد کرد، بنابراین اکنون تغییر دهید،
86
00:03:41,199 –> 00:03:43,000
همانطور که قبلاً نام داریم، نام برابر است
87
00:03:43,000 –> 00:03:45,430
با David، بنابراین حتی اگر تغییر به
88
00:03:45,430 –> 00:03:47,409
جای کلاس والد جریان
89
00:03:47,409 –> 00:03:49,659
و آخرین مقدار متغیر نام
90
00:03:49,659 –> 00:03:52,659
David است، بنابراین باید به معنای V باشد. این
91
00:03:52,659 –> 00:03:55,209
باید فکر کند دیوید حالا بیایید این کد را اجرا
92
00:03:55,209 –> 00:03:57,909
کنیم حالا خروجی دیوید را دریافت می کنیم،
93
00:03:57,909 –> 00:04:00,430
به این معنی که آخرین مقدار
94
00:04:00,430 –> 00:04:02,290
هر کدام را لغو کرده ایم تا آن
95
00:04:02,290 –> 00:04:04,989
مقدار چاپ شود، به عنوان مثال در
96
00:04:04,989 –> 00:04:06,939
کلاس تغییری که من پیاده سازی نکرده ام،
97
00:04:06,939 –> 00:04:09,639
باید فقط یک رمز عبور را بگویید و با کدام
98
00:04:09,639 –> 00:04:11,769
موجود در دسترس است تماس بگیرد، بنابراین اول
99
00:04:11,769 –> 00:04:13,659
می رود و در آخر در jail ها تأیید
100
00:04:13,659 –> 00:04:16,630
می کند تا چیزی نداشته باشد، بنابراین واضح است که
101
00:04:16,630 –> 00:04:18,488
اجرا می شود یا
102
00:04:18,488 –> 00:04:20,798
وقتی من این را اجرا می کنم، فیلد کلاس fading را صدا می
103
00:04:20,798 –> 00:04:23,800
کند. یو u bailing class P درست است، بنابراین
104
00:04:23,800 –> 00:04:26,800
این مفهوم کوچکی است از
105
00:04:26,800 –> 00:04:30,520
overriding اطاعت نادیده گرفتن آن در حال حاضر در دسترس است، من همچنین به
106
00:04:30,520 –> 00:04:32,740
شما نشان خواهم داد که چگونه امیترها را نادیده بگیرید چگونه
107
00:04:32,740 –> 00:04:35,590
روش ها را نادیده بگیرید، اکنون اجازه دهید
108
00:04:35,590 –> 00:04:38,650
با مثال دیگری برویم، بنابراین در این مثال
109
00:04:38,650 –> 00:04:40,960
می خواهم به شما نشان دهم که چگونه
110
00:04:40,960 –> 00:04:44,020
روشها را نادیده بگیرید، بگذارید دوباره بگوییم حالا در اینجا
111
00:04:44,020 –> 00:04:45,819
من یک کلاس از یک کلاس متهم
112
00:04:45,819 –> 00:04:49,629
به نام back ok دارم، بنابراین این کلاس بانک من است
113
00:04:49,629 –> 00:04:52,419
و در این کلاس باند، من روی سومین کلاس نرخ بهره ایجاد خواهم کرد،
114
00:04:52,419 –> 00:04:56,430
115
00:04:56,430 –> 00:04:59,169
بنابراین این یک متدی که
116
00:04:59,169 –> 00:05:03,120
من ایجاد کردهام، بنابراین این یک متد است،
117
00:05:03,120 –> 00:05:06,099
بنابراین در داخل این متد من فقط
118
00:05:06,099 –> 00:05:08,130
مقداری به غیر از
119
00:05:08,130 –> 00:05:09,340
سمت راست صفر
120
00:05:09,340 –> 00:05:12,699
را برمیگردانم، بنابراین به طور مشابه یک کلاس دیگر نیز ایجاد میکنم
121
00:05:12,699 –> 00:05:16,180
و فرض کنید ICICI و
122
00:05:16,180 –> 00:05:18,849
این کلاس خاص از یک
123
00:05:18,849 –> 00:05:21,280
عقب گسترش مییابد. کلاس این کلاس از پشت به ما گسترش داده شده است،
124
00:05:21,280 –> 00:05:24,340
اکنون کاری که من انجام خواهم داد این است که در این
125
00:05:24,340 –> 00:05:25,449
می بینم که بگویم بانک
126
00:05:25,449 –> 00:05:27,669
من هر روشی را
127
00:05:27,669 –> 00:05:30,250
که در کلاس والد ایجاد کرده بودیم لغو می کنم، اکنون اجازه
128
00:05:30,250 –> 00:05:32,530
دهید در این مورد صحبت کنم، در اینجا نرخ
129
00:05:32,530 –> 00:05:34,560
بهره متفاوت خواهد بود. آنها می گویند 10.5
130
00:05:34,560 –> 00:05:37,509
بنابراین اکنون کاری که من انجام داده ام این است که من
131
00:05:37,509 –> 00:05:40,150
فقط یک تغییر دیگر در آخرین بار ایجاد
132
00:05:40,150 –> 00:05:42,880
کرده ام و من فقط در همان روش override کردم و
133
00:05:42,880 –> 00:05:45,130
همان روش را لغو کردم اکنون
134
00:05:45,130 –> 00:05:47,259
اگر این را در دو کلاس مشاهده کردید همان روشی
135
00:05:47,259 –> 00:05:49,120
که ما داریم اما این کار را انجام می دهد. کار متفاوتی را انجام
136
00:05:49,120 –> 00:05:50,860
دهد، بنابراین در اینجا صفر را در اینجا
137
00:05:50,860 –> 00:05:54,279
برمی گرداند، 10.5 یک چیز مشابه و دو
138
00:05:54,279 –> 00:05:57,310
عملکرد متفاوت را به درستی برمی گرداند، بنابراین
139
00:05:57,310 –> 00:05:59,770
این چند شکلی است، بنابراین فرض کنید من
140
00:05:59,770 –> 00:06:01,810
فقط یک شی را درست ایجاد کرده ام، بنابراین اگر
141
00:06:01,810 –> 00:06:03,729
یک شی برای این کلاس ایجاد کنم، اگر فقط یک شی
142
00:06:03,729 –> 00:06:09,460
ایجاد کنید. شیء فرض کنید obj
143
00:06:09,460 –> 00:06:11,830
okay برابر است با من فقط دارم برای ICICI شیء ایجاد می
144
00:06:11,830 –> 00:06:15,219
کنم با استفاده از این obj زمانی
145
00:06:15,219 –> 00:06:17,620
که متد نرخ بهره را فراخوانی می کنند، بنابراین
146
00:06:17,620 –> 00:06:20,289
چه چیزی اکنون اجرا می شود، بنابراین اگر ما فقط
147
00:06:20,289 –> 00:06:22,180
این متد را بیش از حد فراخوانی نکنیم، فقط مقدار را برمی گرداند.
148
00:06:22,180 –> 00:06:25,419
هر چیزی را چاپ کنید صبر کنید
149
00:06:25,419 –> 00:06:26,860
باید آن را بیاوریم تا مقدار را برگردانیم،
150
00:06:26,860 –> 00:06:29,199
بنابراین باید از تابع tail
151
00:06:29,199 –> 00:06:31,539
متد paint در اینجا استفاده کنیم، بنابراین حالا چه اتفاقی میافتد، من به
152
00:06:31,539 –> 00:06:33,699
تازگی یک شی برای ICAC ایجاد کردم که
153
00:06:33,699 –> 00:06:36,399
یک کلاس زندان است، اکنون بلافاصله
154
00:06:36,399 –> 00:06:38,349
نرخ را فراخوانی میکنم. روش بهره پس از
155
00:06:38,349 –> 00:06:40,389
آن 10.5 برمیگرداند و در اینجا ده نقطه
156
00:06:40,389 –> 00:06:42,729
نوشته میشود وقتی این را اجرا میکنم
157
00:06:42,729 –> 00:06:45,729
به شما 10.5 میدهد، بنابراین آنچه که ما
158
00:06:45,729 –> 00:06:48,400
بر این اساس فهمیدهایم این است که
159
00:06:48,400 –> 00:06:50,319
به محض اینکه آن را پوشیدیم بیش از آن در روش داریم.
160
00:06:50,319 –> 00:06:52,689
در متد در کلاس chain،
161
00:06:52,689 –> 00:06:55,210
هر زمان که این کلاس را a صدا می زنیم، هر زمان
162
00:06:55,210 –> 00:06:56,860
که شی کات شده برای زنجیره آخرین
163
00:06:56,860 –> 00:06:59,800
افراد آخرین متد را okay صدا می زنند، اگر
164
00:06:59,800 –> 00:07:01,629
گاهی اوقات اگر آخرین متد در
165
00:07:01,629 –> 00:07:04,030
دسترس نباشد، بالا می رود و
166
00:07:04,030 –> 00:07:07,120
متد کلاس جفت سازی okay را فراخوانی می کند. این
167
00:07:07,120 –> 00:07:09,250
کلاس است که اگر این متد در دسترس
168
00:07:09,250 –> 00:07:11,500
نباشد، می رود و
169
00:07:11,500 –> 00:07:13,509
متد کلاس والد را فراخوانی می کند و
170
00:07:13,509 –> 00:07:16,180
متد کلاس paling را فراخوانی می کند OK.
171
00:07:16,180 –> 00:07:17,710
172
00:07:17,710 –> 00:07:19,509
173
00:07:19,509 –> 00:07:21,610
می گوییم یک شی دیگر که من
174
00:07:21,610 –> 00:07:25,719
opj 1 می سازم برابر است با pan و اکنون
175
00:07:25,719 –> 00:07:28,750
می توانیم این کلاس bang را صدا بزنیم،
176
00:07:28,750 –> 00:07:33,129
نرخ آن یک bang و obj1 نقطه آن است، بنابراین
177
00:07:33,129 –> 00:07:35,229
وقتی این را اکنون صدا می
178
00:07:35,229 –> 00:07:38,080
زنم، اکنون وقتی این را اجرا می کنم، متد را از بانک فراخوانی می کند. آن
179
00:07:38,080 –> 00:07:41,169
را به شما 10 نقطه خوب پس t او
180
00:07:41,169 –> 00:07:42,969
مجدداً به عنوان یک مفهوم برتر نامیده می شود،
181
00:07:42,969 –> 00:07:45,729
همان روشی که ما دوباره استفاده کرده ایم، ما
182
00:07:45,729 –> 00:07:47,740
در حالت بدون تغییر، ما می
183
00:07:47,740 –> 00:07:49,300
توانیم هر تعداد کلاس پوسته مانند
184
00:07:49,300 –> 00:07:52,389
این ایجاد کنیم و یک چیز این است که بسیاری از
185
00:07:52,389 –> 00:07:55,089
اشکال را انجام می دهد، بنابراین یک چیز همان روش
186
00:07:55,089 –> 00:07:58,089
انجام چندین کار به درستی است.
187
00:07:58,089 –> 00:08:01,150
نوعی ثابت غلبه کننده است، بنابراین
188
00:08:01,150 –> 00:08:03,310
ما شاهد غلبه بر متغیر بوده ایم و
189
00:08:03,310 –> 00:08:04,719
همچنین
190
00:08:04,719 –> 00:08:07,629
غلبه بر روش ها از قبل به این معنی
191
00:08:07,629 –> 00:08:09,819
است که همان روش در
192
00:08:09,819 –> 00:08:11,560
غیر تغییر ایجاد می کند که به عنوان یک مفهوم بیش از قبل نامیده می شود،
193
00:08:11,560 –> 00:08:15,400
بنابراین با بیش از آماده شدن
194
00:08:15,400 –> 00:08:17,589
می توانیم به پلیمر نیز دست پیدا کنیم و
195
00:08:17,589 –> 00:08:19,539
یک مفهوم دیگر به نام بارگذاری بارگذاری به جلو وجود دارد،
196
00:08:19,539 –> 00:08:22,449
بنابراین با استفاده از
197
00:08:22,449 –> 00:08:24,490
سربارگذاری همچنین میتوانیم به
198
00:08:24,490 –> 00:08:26,349
مفهوم چندشکلی در
199
00:08:26,349 –> 00:08:28,930
برنامهنویسی شی گرا اوپس دست یابیم، اکنون به
200
00:08:28,930 –> 00:08:30,550
شما نشان میدهم که چگونه با
201
00:08:30,550 –> 00:08:32,260
بارگذاری اضافه کار کنید و قبل از آن اجازه دهید ببینیم
202
00:08:32,260 –> 00:08:35,260
چه چیزی overloading است. در پایتون می توانید
203
00:08:35,260 –> 00:08:38,169
یک متد را به گونه ای تعریف کنید
204
00:08:38,169 –> 00:08:40,958
که چندین روش برای فراخوانی آن وجود داشته باشد و با توجه به
205
00:08:40,958 –> 00:08:43,059
یک متد یا تابع، می توانیم آن را
206
00:08:43,059 –> 00:08:46,600
مشخص کنیم. تعداد پارامترها یا self okay
207
00:08:46,600 –> 00:08:48,790
بنابراین اجازه دهید فقط یک مثال برای شما بیاورم، به عنوان
208
00:08:48,790 –> 00:08:53,589
مثال اگر من okay ایجاد کنم، به
209
00:08:53,589 –> 00:08:54,250
عنوان مثال اگر
210
00:08:54,250 –> 00:08:56,050
یک متد ایجاد کنم، فرض
211
00:08:56,050 –> 00:08:58,480
کنید متد add را ایجاد کرده ام و در اینجا باید برخی از
212
00:08:58,480 –> 00:09:01,150
پارامترها را بر اساس تعداد
213
00:09:01,150 –> 00:09:03,730
پارامتره