در این مطلب، ویدئو توضیح ساده super() در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:15:01
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,030 –> 00:00:02,520
سلام نام من bas Yamato است و در
2
00:00:02,520 –> 00:00:03,929
ویدیوی امروز می خواهم به شما
3
00:00:03,929 –> 00:00:06,359
توضیحی بسیار ساده از عملکرد فوق العاده
4
00:00:06,359 –> 00:00:08,910
در پایتون بدهم اکنون برای این ویدیو
5
00:00:08,910 –> 00:00:10,469
فرض می کنم که شما با
6
00:00:10,469 –> 00:00:13,230
اصول برنامه نویسی شی گرا در زبان فارسی آشنا هستید.
7
00:00:13,230 –> 00:00:15,809
در پایتون نیازی نیست که متخصص باشید،
8
00:00:15,809 –> 00:00:17,609
بلکه فقط می دانید
9
00:00:17,609 –> 00:00:19,680
کلاس چیست و شی چیست و
10
00:00:19,680 –> 00:00:21,150
با تابع dunder init
11
00:00:21,150 –> 00:00:23,730
برای مقداردهی اولیه اشیاء و غیره آشنا هستید و
12
00:00:23,730 –> 00:00:25,260
سپس من می خواهم نشان دهم که چگونه شما میتوانید از
13
00:00:25,260 –> 00:00:27,500
تابع فوقالعاده در وراثت شیء استفاده کنید
14
00:00:27,500 –> 00:00:29,670
اکنون همه آن صداها ممکن است
15
00:00:29,670 –> 00:00:31,320
کمی پیچیده باشند، اما هدف از این
16
00:00:31,320 –> 00:00:33,360
عملکرد این ویدیو این است که
17
00:00:33,360 –> 00:00:35,070
به شما درک بسیار ساده و شهودی
18
00:00:35,070 –> 00:00:36,989
از نحوه عملکرد دقیقاً ارائه
19
00:00:36,989 –> 00:00:40,410
دهد، بنابراین اجازه دهید با این شروع کنیم. این مثال اسباب بازی
20
00:00:40,410 –> 00:00:43,410
در اینجا ما کلاسی به نام
21
00:00:43,410 –> 00:00:46,079
portishead داریم که نشان دهنده
22
00:00:46,079 –> 00:00:48,270
گروه were to set است و دارای
23
00:00:48,270 –> 00:00:49,950
تابع init dunder init است و
24
00:00:49,950 –> 00:00:51,300
تنها کاری که انجام می دهد این است که وقتی
25
00:00:51,300 –> 00:00:53,699
مقدار دهی اولیه می شود، Portishead را چاپ می کند تا
26
00:00:53,699 –> 00:00:55,500
بتوانیم n آن پورتی را ببینید که این
27
00:00:55,500 –> 00:00:57,750
کلاس مقدار دهی اولیه شده است، سپس ما
28
00:00:57,750 –> 00:00:59,609
یک کلاس دیگر
29
00:00:59,609 –> 00:01:01,829
30
00:01:01,829 –> 00:01:03,120
31
00:01:03,120 –> 00:01:04,799
32
00:01:04,799 –> 00:01:06,600
33
00:01:06,600 –> 00:01:08,850
داریم. در این
34
00:01:08,850 –> 00:01:11,340
مثال وراثت به این معنی است که کانیه
35
00:01:11,340 –> 00:01:13,439
وست از مجموعه پورتا الهام گرفته
36
00:01:13,439 –> 00:01:14,570
است که اکنون به این معنی
37
00:01:14,570 –> 00:01:16,770
است، البته کانیه در درجه اول
38
00:01:16,770 –> 00:01:18,990
از کانیه الهام گرفته است، اما کمی از پورتیس هد نیز الهام گرفته شده است
39
00:01:18,990 –> 00:01:21,990
و در عملکرد
40
00:01:21,990 –> 00:01:24,119
اولیه کانیه وست، کانیه وست را چاپ می کند
41
00:01:24,119 –> 00:01:27,000
و سپس و این یک نقطه کلیدی از
42
00:01:27,000 –> 00:01:29,939
وراثت شی است که در واقع
43
00:01:29,939 –> 00:01:32,280
تابع init Portishead را فراخوانی می کند، بنابراین
44
00:01:32,280 –> 00:01:33,810
Portishead نیز فرصتی برای
45
00:01:33,810 –> 00:01:35,970
مقداردهی اولیه به سمت راست دارد، بنابراین portishead
46
00:01:35,970 –> 00:01:38,189
به کلاس Portishead در اینجا
47
00:01:38,189 –> 00:01:40,049
اشاره می کند و تابع init نقطه به این تابع اشاره دارد، بنابراین
48
00:01:40,049 –> 00:01:42,180
آنچه را خواهیم دید. سپس این است که ابتدا
49
00:01:42,180 –> 00:01:44,280
کانیه وست مقداردهی اولیه می شود و سپس
50
00:01:44,280 –> 00:01:46,680
کلاس مادر کانیه وست
51
00:01:46,680 –> 00:01:48,509
پورتیس هد مقداردهی اولیه می شود و
52
00:01:48,509 –> 00:01:50,610
کانیه وست چاپ می شود. و وارد کردن تایید،
53
00:01:50,610 –> 00:01:52,470
بنابراین اگر این را درست اجرا کنم، در اینجا ما در حال ایجاد
54
00:01:52,470 –> 00:01:54,450
مجدد نمونه ای
55
00:01:54,450 –> 00:01:56,399
از کلاس Kanye West، فراخوانی و
56
00:01:56,399 –> 00:01:57,060
کانیه وست
57
00:01:57,060 –> 00:01:59,610
با استفاده از قرارداد سبک پایتون هستیم که
58
00:01:59,610 –> 00:02:01,710
نام کلاس ها دارای این نوع شتر
59
00:02:01,710 –> 00:02:03,210
با حروف بزرگ هستند
60
00:02:03,210 –> 00:02:07,200
در حالی که نمونه های شی. حروف کوچک
61
00:02:07,200 –> 00:02:10,770
را با یک زیرخط جدا از هم جدا کنید
62
00:02:10,770 –> 00:02:12,989
که فقط یک قرارداد است، بنابراین
63
00:02:12,989 –> 00:02:13,180
64
00:02:13,180 –> 00:02:14,920
اگر من این را اینجا در ترمینال در ترمینال اجرا کنم، بتوانید تشخیص دهید که
65
00:02:14,920 –> 00:02:16,750
نام کلاس چیست و نام یک
66
00:02:16,750 –> 00:02:20,290
شی مناسب است.
67
00:02:20,290 –> 00:02:21,790
68
00:02:21,790 –> 00:02:24,099
کنسول سمت راست می بینید که همان کاری را انجام می
69
00:02:24,099 –> 00:02:26,530
دهد که شما انتظار دارید. بنابراین
70
00:02:26,530 –> 00:02:28,540
در اینجا خروجی را می بینیم که کانیه وست
71
00:02:28,540 –> 00:02:31,120
آن را در اینجا چاپ می کند و سپس
72
00:02:31,120 –> 00:02:34,840
آن را به بیرون منتقل می
73
00:02:34,840 –> 00:02:35,920
74
00:02:35,920 –> 00:02:37,480
کند. فرض میکنیم که شما به نوعی از
75
00:02:37,480 –> 00:02:38,650
این درست پیروی میکنید که
76
00:02:38,650 –> 00:02:40,359
با این نوع برنامهنویسی شی گرا آشنا هستید،
77
00:02:40,359 –> 00:02:41,139
78
00:02:41,139 –> 00:02:44,049
اکنون چگونه میتوانیم این را برای استفاده از تابع super تغییر دهیم،
79
00:02:44,049 –> 00:02:46,919
بنابراین آنچه super do
80
00:02:46,919 –> 00:02:50,560
super به سادگی یک جایگزین است. به این
81
00:02:50,560 –> 00:02:54,010
نوع فراخوانی کلاسهای مادر، بنابراین
82
00:02:54,010 –> 00:02:55,090
در اینجا کاری که ما انجام میدهیم این است که به
83
00:02:55,090 –> 00:02:57,250
صراحت میگوییم که میخواهیم
84
00:02:57,250 –> 00:02:59,859
تابع init پورتیهد را فراخوانی کنیم،
85
00:02:59,859 –> 00:03:01,900
تابع super به ما اجازه میدهد تا
86
00:03:01,900 –> 00:03:03,939
کمی کلیتر باشیم و به ما اجازه میدهد بگوییم
87
00:03:03,939 –> 00:03:08,260
خوب super so و super سپس به
88
00:03:08,260 –> 00:03:11,349
کلاس مادر کانیه وست اشاره می کند بدون
89
00:03:11,349 –> 00:03:13,569
اینکه ما در واقع صریح
90
00:03:13,569 –> 00:03:16,060
باشیم که این پورتیس هد است و سپس
91
00:03:16,060 –> 00:03:19,900
در آن می گوییم و در واقع نیازی
92
00:03:19,900 –> 00:03:23,680
به مشخص کردن کلمه کلیدی خود نداریم اگر
93
00:03:23,680 –> 00:03:26,229
این را اجرا کنم. من آن را در اینجا اجرا می کنم و سپس شما
94
00:03:26,229 –> 00:03:27,790
اینجا را در یک کنسول خواهید دید که دقیقاً همان کار را انجام می دهد
95
00:03:27,790 –> 00:03:30,370
، بنابراین این همان کاری است که
96
00:03:30,370 –> 00:03:32,379
ما انجام داده ایم، ما از
97
00:03:32,379 –> 00:03:35,590
کلمه کلیدی super function super برای
98
00:03:35,590 –> 00:03:37,150
انجام همان کاری که قبلا انجام دادیم استفاده کرده ایم.
99
00:03:37,150 –> 00:03:39,069
واقعاً با فراخوانی صریح تابع init
100
00:03:39,069 –> 00:03:41,109
کلاس Portishead Portishead
101
00:03:41,109 –> 00:03:45,159
خواهید دید که در واقع در
102
00:03:45,159 –> 00:03:47,049
بسیاری از موارد،
103
00:03:47,049 –> 00:03:49,689
چه از تابع super به
104
00:03:49,689 –> 00:03:51,819
این صورت استفاده کنید و چه اینکه به صراحت
105
00:03:51,819 –> 00:03:54,400
کلاس های پایه را مانند این فراخوانی می کنید، ze را ایجاد می کند.
106
00:03:54,400 –> 00:03:56,590
ro تفاوت دقیقاً همان
107
00:03:56,590 –> 00:04:00,069
کار را انجام می دهد فقط در موارد بسیار نادری که من
108
00:04:00,069 –> 00:04:01,780
کمی توضیح
109
00:04:01,780 –> 00:04:03,459
110
00:04:03,459 –> 00:04:08,349
111
00:04:08,349 –> 00:04:11,889
112
00:04:11,889 –> 00:04:12,310
113
00:04:12,310 –> 00:04:15,790
خواهم داد. برای عبور
114
00:04:15,790 –> 00:04:19,089
115
00:04:19,089 –> 00:04:22,419
نام کلاس
116
00:04:22,419 –> 00:04:25,450
و خود از
117
00:04:25,450 –> 00:04:26,540
118
00:04:26,540 –> 00:04:28,340
تابع
119
00:04:28,340 –> 00:04:30,950
120
00:04:30,950 –> 00:04:32,540
super من
121
00:04:32,540 –> 00:04:35,510
آن را به این شکل می نویسم بسیار خوب، بنابراین اکنون می بینید
122
00:04:35,510 –> 00:04:37,850
که ما از super استفاده کرده ایم، اما در واقع ما
123
00:04:37,850 –> 00:04:39,770
بیشتر ادمین ها هستیم که کد خود را
124
00:04:39,770 –> 00:04:41,300
کمی تمیزتر کرده ایم اما واقعاً از نظر
125
00:04:41,300 –> 00:04:43,280
عملکرد چیزی را تغییر ندادیم و همچنین
126
00:04:43,280 –> 00:04:44,870
در حال حاضر احتمالاً مشخص نیست برای شما
127
00:04:44,870 –> 00:04:46,880
چه تفاوتی بین super و
128
00:04:46,880 –> 00:04:48,980
صریح فراخوانی کلاس های پایه به
129
00:04:48,980 –> 00:04:53,000
این صورت است، بنابراین بیایید این
130
00:04:53,000 –> 00:04:56,540
مثال را به گونه ای توضیح دهیم که در واقع
131
00:04:56,540 –> 00:04:58,790
تفاوت را روشن کند، بنابراین من
132
00:04:58,790 –> 00:05:00,860
این کلمه کلیدی فوق العاده را از طریق این super حذف خواهم کرد.
133
00:05:00,860 –> 00:05:02,450
چیزی است و ما به سادگی به
134
00:05:02,450 –> 00:05:04,460
فراخوانی صریح کلاس پایه برمی گردیم و
135
00:05:04,460 –> 00:05:08,390
سپس کلاس دیگری ایجاد می کنم که کلاس دیگری است
136
00:05:08,390 –> 00:05:12,470
و آن ASA rocky است و گفتم
137
00:05:12,470 –> 00:05:15,220
بروک نیز از Portishead
138
00:05:15,220 –> 00:05:17,750
Hey Seth
139
00:05:17,750 –> 00:05:21,710
rocky الهام گرفته است و بنابراین اکنون دو کلاس
140
00:05:21,710 –> 00:05:24,010
داریم که الهام گرفته شده اند. توسط Portishead
141
00:05:24,010 –> 00:05:26,840
این ساده است درست آنچه که ما اکنون داریم به
142
00:05:26,840 –> 00:05:29,300
نوعی یک سلسله مراتب مثلثی است، بنابراین
143
00:05:29,300 –> 00:05:31,070
ما پورتیس هد را در بالا داریم و از
144
00:05:31,070 –> 00:05:32,870
یک طرف کانیه وست و از
145
00:05:32,870 –> 00:05:35,630
طرف دیگر ما یک ساباکی داریم، اما
146
00:05:35,630 –> 00:05:37,550
اکنون چیزی که هستیم در واقع این است
147
00:05:37,550 –> 00:05:40,250
که یک ساختار الماس از طریق به
148
00:05:40,250 –> 00:05:42,290
اصطلاح وراثت چندگانه ایجاد کنیم که
149
00:05:42,290 –> 00:05:44,660
واقعاً پیچیده به نظر میرسد، اما اینطور نیست، ما این را
150
00:05:44,660 –> 00:05:49,160
تکرار میکنیم و من کلاسی به نام یارانه ایجاد میکنم.
151
00:05:49,160 –> 00:05:51,260
152
00:05:51,260 –> 00:05:54,200
153
00:05:54,200 –> 00:06:01,330
توسط ASA rocky و Kanye West ASAP city
154
00:06:01,330 –> 00:06:04,400
اکنون پس در اینجا البته من باید
155
00:06:04,400 –> 00:06:06,770
به طور صریح خلیج را
156
00:06:06,770 –> 00:06:09,110
تابع اولیه ASAP rocky بنامم و همچنین
157
00:06:09,110 –> 00:06:11,720
باید a را به صراحت تابع init
158
00:06:11,720 –> 00:06:14,480
کانیه وست و سپس اینجا نام ببرم.
159
00:06:14,480 –> 00:06:15,020
در زیر
160
00:06:15,020 –> 00:06:17,330
قصد ندارم نمونه اولیه
161
00:06:17,330 –> 00:06:19,430
کانیه وست را مقداردهی کنم، اما می خواهم
162
00:06:19,430 –> 00:06:24,080
یک زیرمجموعه را نمونه سازی کنم، اساساً
163
00:06:24,080 –> 00:06:27,020
همین جا می رویم، بنابراین اکنون
164
00:06:27,020 –> 00:06:29,420
ساختاری به نام الماس داریم زیرا در بالا
165
00:06:29,420 –> 00:06:31,700
هنوز پورتی هد را داریم و
166
00:06:31,700 –> 00:06:33,230
از یک طرف داریم. ما kanye west را داریم،
167
00:06:33,230 –> 00:06:36,080
از طرف دیگر، ما یک کلید صفر داریم،
168
00:06:36,080 –> 00:06:38,480
سپس در وب پایین، ما یک ساختار
169
00:06:38,480 –> 00:06:40,370
زیربنایی داریم، بنابراین ما این نوع
170
00:06:40,370 –> 00:06:42,919
ساختار الماس را داریم و این
171
00:06:42,919 –> 00:06:44,600
ارث چندگانه چیزی است که در اینجا میبینید.
172
00:06:44,600 –> 00:06:47,540
17 سپتامبر Herot از یک کلید فوق العاده
173
00:06:47,540 –> 00:06:49,850
یا فقط از کانیه وست به ارث برده می شود، اما
174
00:06:49,850 –> 00:06:51,949
از هر دو به آن وراثت چندگانه می گویند
175
00:06:51,949 –> 00:06:56,000
و اکنون خواهیم دید که
176
00:06:56,000 –> 00:06:57,740
در واقع با یک مشکل عجیب و غریب مواجه خواهیم
177
00:06:57,740 –> 00:07:00,440
شد، بنابراین اگر این را اجرا کنم، اجرا می شود،
178
00:07:00,440 –> 00:07:03,530
اشتباه نیست، اجرا می کنم آن را بالا می برید و
179
00:07:03,530 –> 00:07:05,449
خواهید دید اگر اینجا به خروجی نگاه کنیم،
180
00:07:05,449 –> 00:07:08,570
یک نیمه SEP می بینید که از اینجا می آید،
181
00:07:08,570 –> 00:07:12,110
سپس یک نیمه SEP
182
00:07:12,110 –> 00:07:13,850
تابع اولیه ASAP rocky را فراخوانی می کند و این همان چیزی است
183
00:07:13,850 –> 00:07:17,539
که در اینجا می بینیم، سپس Seabrook e
184
00:07:17,539 –> 00:07:19,250
تابع init پورتیس هد را فراخوانی می کند. که w کلاهی
185
00:07:19,250 –> 00:07:22,400
که ما اینجا می بینیم و آن اینجاست، در
186
00:07:22,400 –> 00:07:25,280
واقع یک زیرمجموعه به فراخوانی
187
00:07:25,280 –> 00:07:27,410
تابع اولیه کانیه وست می رود و این همان
188
00:07:27,410 –> 00:07:29,630
چیزی است که در اینجا خواهیم دید کانیه
189
00:07:29,630 –> 00:07:32,360
وست به نوبه خود
190
00:07:32,360 –> 00:07:34,280
تابع اولیه پورتی هد را نیز فراخوانی می کند و سپس
191
00:07:34,280 –> 00:07:35,030
پورتی هد
192
00:07:35,030 –> 00:07:37,430
دوباره چاپ می شود تا آنچه را که ما انجام دهیم.
193
00:07:37,430 –> 00:07:40,370
دیدن اکنون چیزی است که بسیار
194
00:07:40,370 –> 00:07:42,650
نامطلوب است، یعنی تابع
195
00:07:42,650 –> 00:07:45,560
ابتدایی پورتیس هد دو بار فراخوانی شده است و چرا خوب
196