در این مطلب، ویدئو آموزش پایتون OOP | پایتون __init__، سازندگان و خود با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:19:54
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,000
در این ویدیو قصد دارم
2
00:00:02,000 –> 00:00:03,360
نحوه استفاده از
3
00:00:03,360 –> 00:00:06,080
متد init در پایتون و نحوه استفاده از
4
00:00:06,080 –> 00:00:06,720
کلمه کلیدی
5
00:00:06,720 –> 00:00:10,559
به نام self در پایتون را به شما نشان دهم، بنابراین
6
00:00:10,559 –> 00:00:12,960
کلاسی را که در آخرین ویدیو ایجاد کرده ام ادامه می دهم
7
00:00:12,960 –> 00:00:14,480
8
00:00:14,480 –> 00:00:16,480
و این همان کلاسی بود که ما داریم.
9
00:00:16,480 –> 00:00:18,400
ایجاد شده است و ما از
10
00:00:18,400 –> 00:00:21,439
این کلمه کلیدی ویژه
11
00:00:21,439 –> 00:00:24,720
استفاده کرده ایم pass and pass که برای ایجاد یک کلاس خالی استفاده می کردیم،
12
00:00:24,720 –> 00:00:27,760
اکنون این
13
00:00:27,760 –> 00:00:28,720
پاس
14
00:00:28,720 –> 00:00:32,558
را حذف می کنم و روشی به نام
15
00:00:32,558 –> 00:00:35,600
init را در اینجا اضافه می کنم بنابراین فقط می خواهم def را بنویسم
16
00:00:35,600 –> 00:00:39,280
و سپس underscore init را
17
00:00:39,280 –> 00:00:42,399
فشار دهید و سپس enter را فشار دهید و می بینید که
18
00:00:42,399 –> 00:00:45,680
این متد init در اینجا ایجاد شده است،
19
00:00:45,680 –> 00:00:48,800
بنابراین این مانند یک روش معمولی است که
20
00:00:48,800 –> 00:00:52,000
در جلو و پشت این کلمه کلیدی init دو خط زیر خط دارد
21
00:00:52,000 –> 00:00:54,960
و همچنین خواهید دید
22
00:00:54,960 –> 00:00:55,280
که
23
00:00:55,280 –> 00:00:59,039
کلمه کلیدی self قبلاً به عنوان اضافه شده است
24
00:00:59,039 –> 00:01:02,640
. اولین آرگومان این متد
25
00:01:02,640 –> 00:01:05,680
اکنون این متد init به عنوان
26
00:01:05,680 –> 00:01:06,560
27
00:01:06,560 –> 00:01:10,479
سازنده کلاس عمل می کند، بنابراین معمولاً
28
00:01:10,479 –> 00:01:13,600
برای مقداردهی اولیه برخی ویژگی ها
29
00:01:13,600 –> 00:01:16,799
یا برخی از توابع استفاده می شود زیرا
30
00:01:16,799 –> 00:01:20,159
این اولین متدی است که
31
00:01:20,159 –> 00:01:23,439
هنگام ایجاد نمونه ای از یک کلاس فراخوانی
32
00:01:23,439 –> 00:01:24,400
می
33
00:01:24,400 –> 00:01:27,040
شود. در حال ایجاد نمونه ای از یک کلاس هستند
34
00:01:27,040 –> 00:01:28,400
و این متد init
35
00:01:28,400 –> 00:01:31,360
اولین متدی خواهد بود که
36
00:01:31,360 –> 00:01:32,240
37
00:01:32,240 –> 00:01:35,360
هنگام ایجاد این شی یا نمونه فراخوانی می
38
00:01:35,360 –> 00:01:36,079
شود،
39
00:01:36,079 –> 00:01:38,320
بنابراین بیایید آنچه را که می گویم بررسی کنیم، بنابراین
40
00:01:38,320 –> 00:01:40,079
فرض کنید می خواهم
41
00:01:40,079 –> 00:01:43,759
در داخل این متد init چاپ کنم که
42
00:01:43,759 –> 00:01:46,799
زیرخط underscore init underscore
43
00:01:46,799 –> 00:01:48,000
44
00:01:48,000 –> 00:01:51,600
underscore نامیده می شود و اجازه دهید من این کد را اجرا کنم، بنابراین من این کد
45
00:01:51,600 –> 00:01:52,399
را به car تغییر می دهم
46
00:01:52,399 –> 00:01:55,439
و سپس این کد را اجرا می کنم
47
00:01:55,439 –> 00:01:58,479
و حالا وقتی این نتیجه را می
48
00:01:58,479 –> 00:01:59,360
بینم می بینید که
49
00:01:59,360 –> 00:02:02,479
این خط سه بار فراخوانی شده است
50
00:02:02,479 –> 00:02:04,880
زیرا ما سه نمونه
51
00:02:04,880 –> 00:02:05,680
52
00:02:05,680 –> 00:02:08,878
از یک کلاس ایجاد کرده ایم. بسیار خوب پس هر بار که این
53
00:02:08,878 –> 00:02:12,319
نمونه ایجاد می شود این
54
00:02:12,319 –> 00:02:15,520
چاپ نامیده می شود و به همین دلیل است که این خط
55
00:02:15,520 –> 00:02:16,879
سه بار چاپ می
56
00:02:16,879 –> 00:02:19,680
شود و بقیه موارد
57
00:02:19,680 –> 00:02:20,239
58
00:02:20,239 –> 00:02:22,560
بعد از آن چاپ می شود هر چه چاپ می کردیم
59
00:02:22,560 –> 00:02:24,879
مثلا سرعت یا رنگ ماشین
60
00:02:24,879 –> 00:02:27,680
بعد از آن چاپ می شود حالا یک
61
00:02:27,680 –> 00:02:29,760
چیز مهم است. توجه به اینجا
62
00:02:29,760 –> 00:02:33,920
این است که گفتم init به عنوان سازنده عمل می کند،
63
00:02:33,920 –> 00:02:37,040
سازنده نیست، اگرچه
64
00:02:37,040 –> 00:02:38,560
وسوسه انگیز است که
65
00:02:38,560 –> 00:02:41,120
این متد init را به عنوان سازنده صدا کنیم،
66
00:02:41,120 –> 00:02:43,680
در واقع این یک سازنده نیست. r
67
00:02:43,680 –> 00:02:47,040
اما مانند یک سازنده رفتار می کند
68
00:02:47,040 –> 00:02:50,319
زیرا init
69
00:02:50,319 –> 00:02:52,720
نزدیکترین چیزی است که در پایتون به
70
00:02:52,720 –> 00:02:53,840
سازنده می گیریم
71
00:02:53,840 –> 00:02:56,959
زیرا اولین متدی است که
72
00:02:56,959 –> 00:02:57,920
73
00:02:57,920 –> 00:03:01,200
هر زمان که نمونه ای ایجاد می شود اکنون فراخوانی می شود اگر
74
00:03:01,200 –> 00:03:02,239
با
75
00:03:02,239 –> 00:03:03,840
سایر زبان های برنامه نویسی شی گرا
76
00:03:03,840 –> 00:03:05,840
مانند جاوا آشنایی دارید.
77
00:03:05,840 –> 00:03:09,519
و c plus plus یک ویرانگر
78
00:03:09,519 –> 00:03:10,080
نیز
79
00:03:10,080 –> 00:03:13,760
در این نوع زبانها با کلاسهایی وجود دارد که
80
00:03:13,760 –> 00:03:17,200
اکنون پایتون هیچ تخریبکنندهای ندارد،
81
00:03:17,200 –> 00:03:20,959
زیرا پایتون یک جمعآوری خودکار زباله دارد،
82
00:03:20,959 –> 00:03:21,519
83
00:03:21,519 –> 00:03:24,480
بنابراین شما نیازی به تخریبگر در پایتون ندارید،
84
00:03:24,480 –> 00:03:24,959
زیرا
85
00:03:24,959 –> 00:03:27,760
پایتون از هر چیزی که باید مراقبت کند.
86
00:03:27,760 –> 00:03:29,440
87
00:03:29,440 –> 00:03:32,400
اکنون مراقب باشید همانطور که گفتم معمولاً از روش init
88
00:03:32,400 –> 00:03:33,040
89
00:03:33,040 –> 00:03:36,640
برای مقداردهی اولیه چیزی استفاده می شود بنابراین به جای
90
00:03:36,640 –> 00:03:39,760
مقداردهی اولیه مقدار سرعت و
91
00:03:39,760 –> 00:03:43,040
مقداردهی اولیه رنگ، اجازه دهید
92
00:03:43,040 –> 00:03:44,000
93
00:03:44,000 –> 00:03:46,400
قبل از هر چیز این کد را نظر بدهم تا
94
00:03:46,400 –> 00:03:48,480
هر چیزی را که می خواهم انتخاب کنم. نظر بده
95
00:03:48,480 –> 00:03:51,920
و بعد می تونم ctrl رو اسلش بزنم
96
00:03:51,920 –> 00:03:54,720
تا تمام خط نظر بده، تو هم میتونی
97
00:03:54,720 –> 00:03:55,680
بری کد
98
00:03:55,680 –> 00:03:58,480
و بعد از این گزینه استفاده کن که میگه
99
00:03:58,480 –> 00:04:00,400
نظر با خط کامنت و می تونی
100
00:04:00,400 –> 00:04:02,080
میانبر آن
101
00:04:02,080 –> 00:04:05,200
کنترل را به همراه اسلش رو به جلو خوب ببینید، بنابراین این
102
00:04:05,200 –> 00:04:06,480
103
00:04:06,480 –> 00:04:09,920
خطهای کد شما را نظر میدهد و حالا میخواهم
104
00:04:09,920 –> 00:04:13,200
از سرعت به عنوان مقدار اولیه
105
00:04:13,200 –> 00:04:14,000
استفاده کنم،
106
00:04:14,000 –> 00:04:17,600
بنابراین بعد از کلمه کلیدی self میتوانم پارامتر
107
00:04:17,600 –> 00:04:18,478
بعدی را
108
00:04:18,478 –> 00:04:21,519
که سرعت است، اینجا
109
00:04:21,519 –> 00:04:24,560
و سپس پارامتر سوم
110
00:04:24,560 –> 00:04:27,440
رنگ در اینجا و اکنون برای چاپ مقدار
111
00:04:27,440 –> 00:04:28,720
سرعت و رنگ است
112
00:04:28,720 –> 00:04:31,680
که می توانم یک بار دیگر از چاپ استفاده کنم و سپس
113
00:04:31,680 –> 00:04:33,199
اول از همه سرعت را چاپ می
114
00:04:33,199 –> 00:04:34,080
115
00:04:34,080 –> 00:04:37,520
کنم و سپس ویژگی رنگ را چاپ می کنم
116
00:04:37,520 –> 00:04:40,479
و به محض اینکه شما این کار را انجام میدهید
117
00:04:40,479 –> 00:04:41,199
118
00:04:41,199 –> 00:04:43,680
و وقتی میخواهید این برنامه را اجرا کنید
119
00:04:43,680 –> 00:04:44,400
به
120
00:04:44,400 –> 00:04:46,800
شما خطا میدهد، بنابراین اجازه دهید برنامه را اجرا کنم و
121
00:04:46,800 –> 00:04:48,639
این خطا را به من میدهد
122
00:04:48,639 –> 00:04:51,759
که میگوید init به
123
00:04:51,759 –> 00:04:55,120
آرگومان موقعیتی مورد نیاز که سرعت و رنگ آن مناسب است، از دست رفته است،
124
00:04:55,120 –> 00:04:55,840
125
00:04:55,840 –> 00:05:00,160
بنابراین وقتی یک init ایجاد کنید. متد
126
00:05:00,160 –> 00:05:03,280
و ارائه هر آرگومان دیگری غیر از
127
00:05:03,280 –> 00:05:07,120
self self
128
00:05:07,120 –> 00:05:10,160
هر زمان که نمونه ای از کلاس را ایجاد می کنید به طور خودکار توسط پایتون ارائه می شود
129
00:05:10,160 –> 00:05:11,520
130
00:05:11,520 –> 00:05:14,160
اما به غیر از self وقتی که برای
131
00:05:14,160 –> 00:05:15,759
مثال آرگومان های سرعت و رنگ
132
00:05:15,759 –> 00:05:18,560
در اینجا می نویسید باید آن
133
00:05:18,560 –> 00:05:19,440
آرگومان را
134
00:05:19,440 –> 00:05:23,280
در اینجا ارائه کنید. مقداردهی اولیه کلاس شما،
135
00:05:23,280 –> 00:05:26,560
بنابراین در اینجا ابتدا سرعت
136
00:05:26,560 –> 00:05:29,680
داخل پرانتز را به عنوان مثال 200 می دهیم
137
00:05:29,680 –> 00:05:32,800
و سپس رنگ را به عنوان مثال
138
00:05:32,800 –> 00:05:36,479
قرمز در اینجا می دهیم، بسیار خوب است که باید
139
00:05:36,479 –> 00:05:39,840
برای 2
140
00:05:39,840 –> 00:05:43,759
نمونه دیگر کلاس خودرو انجام دهیم، بنابراین اجازه دهید این کار را برای دومی انجام دهم.
141
00:05:43,759 –> 00:05:44,720
142
00:05:44,720 –> 00:05:48,240
نمونه و همچنین برای
143
00:05:48,240 –> 00:05:50,880
نمونه سوم و حالا بیایید
144
00:05:50,880 –> 00:05:52,240
یک بار دیگر کد را اجرا کنیم
145
00:05:52,240 –> 00:05:55,039
و ببینیم چه اتفاقی می افتد تا
146
00:05:55,039 –> 00:05:55,919
حالا ببینید
147
00:05:55,919 –> 00:05:59,199
همه چیز خوب کار می کند و هیچ خطایی
148
00:05:59,199 –> 00:06:01,840
به ما داده نمی شود و همچنین خواهید دید
149
00:06:01,840 –> 00:06:02,800
چون
150
00:06:02,800 –> 00:06:06,319
این چاپ نامیده می شود ابتدا می توانید
151
00:06:06,319 –> 00:06:08,880
ببینید سرعت چاپ می شود و سپس
152
00:06:08,880 –> 00:06:09,680
رنگ
153
00:06:09,680 –> 00:06:13,039
و سپس این خط بعد از آن چاپ می شود
154
00:06:13,039 –> 00:06:15,680
و این بدان معناست که ما رنگ سرعت
155
00:06:15,680 –> 00:06:16,319
156
00:06:16,319 –> 00:06:19,520
و این خط را سه بار برای هر
157
00:06:19,520 –> 00:06:22,960
نمونه با مقادیر مختلف هر
158
00:06:22,960 –> 00:06:23,680
مقداری
159
00:06:23,680 –> 00:06:26,319
که برای نمونه کلاس خودروی خود ارائه کرده اید، دریافت
160
00:06:26,319 –> 00:06:27,199
161
00:06:27,199 –> 00:06:29,600
می کنیم. شما این آرگومانها را ارائه میدهید
162
00:06:29,600 –> 00:06:30,800
163
00:06:30,800 –> 00:06:33,280
زیرا میخواهید مقدار سرعت را مقداردهی اولیه کنید،
164
00:06:33,280 –> 00:06:34,479
165
00:06:34,479 –> 00:06:38,080
بنابراین بیایید سعی کنیم به
166
00:06:38,080 –> 00:06:41,360
مقدار سرعت و رنگ شی فورد دسترسی پیدا کنیم، بنابراین اجازه دهید
167
00:06:41,360 –> 00:06:43,520
من فقط این کد را از نظر خارج کنم
168
00:06:43,520 –> 00:06:46,160
و بیایید این کد را اجرا کنیم و به
169
00:06:46,160 –> 00:06:46,800
ما یک
170
00:06:46,800 –> 00:06:50,080
خطا می دهد، می بینید که می گوید
171
00:06:50,080 –> 00:06:52,960
شی ماشین هیچ ویژگی به نام speed
172
00:06:52,960 –> 00:06:55,039
right ندارد، پس چه خطایی دارد
173
00:06:55,039 –> 00:06:59,039
زیرا ما این ویژگی
174
00:06:59,039 –> 00:07:01,520
سرعت و رنگ را ارائه کرده ایم اما
175
00:07:01,520 –> 00:07:02,720
این مقادیر را به
176
00:07:02,720 –> 00:07:05,759
هیچ ویژگی اختصاص نداده ایم. در داخل این
177
00:07:05,759 –> 00:07:08,720
کلاس خودرو قبلاً کاری که ما انجام دادیم
178
00:07:08,720 –> 00:07:09,120
این است
179
00:07:09,120 –> 00:07:12,479
که مقدار سرعت را به یک ویژگی speed
180
00:07:12,479 –> 00:07:13,440
181
00:07:13,440 –> 00:07:15,280
و مقدار رنگ را به
182
00:07:15,280 –> 00:07:16,479
ویژگی color اختصاص داده
183
00:07:16,479 –> 00:07:19,280
ایم، اما قبلاً آن کدها را نظر داده ایم، بنابراین
184
00:07:19,280 –> 00:07:21,840
چگونه می توانیم سرعت و رنگ را
185
00:07:21,840 –> 00:07:25,680
به شی ماشین اختصاص دهیم تا معلوم می شود که
186
00:07:25,680 –> 00:07:27,360
می توانید از
187
00:07:27,360 –> 00:07:30,560
کلمه کلیدی self استفاده کنید و سپس با استفاده از کلمه کلیدی self
188
00:07:30,560 –> 00:07:32,479
می توانید مقدار را
189
00:07:32,479 –> 00:07:35,120
به شی فعلی اختصاص دهید، بنابراین self
190
00:07:35,120 –> 00:07:36,080
191
00:07:36,080 –> 00:07:39,520
اساساً شی فعلی است، بسیار خوب، اگر با آن ها آشنا هستید، شبیه به
192
00:07:39,520 –> 00:07:40,479
استفاده از
193
00:07:40,479 –> 00:07:43,680
این در c plus plus یا java است.
194
00:07:43,680 –> 00:07:44,639
195
00:07:44,639 –> 00:07:48,319
دو زبان بنابراین شما از self dot استفاده می کنید
196
00:07:48,319 –> 00:07:50,080
و سپس نام ویژگی به
197
00:07:50,080 –> 00:07:51,440
عنوان مثال سرعت
198
00:07:51,440 –> 00:07:53,840
در مورد ما برابر است با هر
199
00:07:53,840 –> 00:07:55,840
آرگومانی که برای سرعت ارائه می کنید بنابراین ما
200
00:07:55,840 –> 00:07:58,000
همان آرگومان را ارائه کرده ایم که
201
00:07:58,000 –> 00:08:01,520
سرعت است. یک بار دیگر می توانم از
202
00:08:01,520 –> 00:08:04,560
self برای تنظیم مقدار
203
00:08:04,560 –> 00:08:07,919
رنگ در اینجا استفاده کنم بنابراین self.color برابر با
204
00:08:07,919 –> 00:08:08,720
رنگ است
205
00:08:08,720 –> 00:08:10,479
اجازه دهید این نقطه ویرگول را حذف کنم زیرا
206
00:08:10,479 –> 00:08:12,400
نیازی به آن نیست
207
00:08:12,400 –> 00:08:15,520
و اکنون وقتی این کد را اجرا می کنم می
208
00:08:15,520 –> 00:08:16,560
بینید
209
00:08:16,560 –> 00:08:19,440
که اکنون هیچ خطایی وجود ندارد.
210
00:08:19,440 –> 00:08:19,919
211
00:08:19,919 –> 00:08:23,360
اکنون از کلمه کلیدی self برای
212
00:08:23,360 –> 00:08:26,160
تنظیم ویژگی های سرعت و رنگ استفاده کرده ایم تا بتوانیم
213
00:08:26,160 –> 00:08:26,479
214
00:08:26,479 –> 00:08:29,680
به راحتی به مقادیر سرعت
215
00:08:29,680 –> 00:08:30,319
و رنگ
216
00:08:30,319 –> 00:08:33,039
با استفاده از هر شیء کلاس خودرو دسترسی داشته باشیم، بنابراین اجازه
217
00:08:33,039 –> 00:08:34,799
دهید یک بار دیگر این را به حداقل برسانم،
218
00:08:34,799 –> 00:08:38,320
بنابراین اکنون اجازه دهید در مورد کلمه کلیدی self
219
00:08:38,320 –> 00:08:38,799
در اینجا
220
00:08:38,799 –> 00:08:41,760
صحبت کنیم. هر زمان که یک کلاس ایجاد میکنید، اولین
221
00:08:41,760 –> 00:08:42,559
آرگومان
222
00:08:42,559 –> 00:08:45,519
هر متد را باید
223
00:08:45,519 –> 00:08:46,959
خودتان این کلمه کلیدی را ارائه دهید،
224
00:08:46,959 –> 00:08:49,440
اکنون لازم نیست
225
00:08:49,440 –> 00:08:50,000
همان
226
00:08:50,000 –> 00:08:52,320
کلمه کلیدی را که self است ارائه کنید، اما این یک
227
00:08:52,320 –> 00:08:53,600
قرارداد است که
228
00:08:53,600 –> 00:08:56,480
این خود را به عنوان اولین پارامتر بنویسید،
229
00:08:56,480 –> 00:08:57,760
اولین پارامتر
230
00:08:57,760 –> 00:09:01,040
میتواند برای مثال abc باشد. مهم نیست،
231
00:09:01,040 –> 00:09:02,640
اما شما باید از
232
00:09:02,640 –> 00:09:05,920
این abc در اینجا نیز به عنوان خود استفاده کنید
233
00:09:05,920 –> 00:09:08,320
و کاملاً خوب خواهد بود، اما این یک
234
00:09:08,320 –> 00:09:10,320
قرارداد است که ما از
235
00:09:10,320 –> 00:09:13,519
کلمه کلیدی self استفاده می کنیم تا نشان دهیم
236
00:09:13,519 –> 00:09:16,800
که این شی فعلی است، بنابراین هر
237
00:09:16,800 –> 00:09:18,399
روشی که ایجاد
238
00:09:18,399 –> 00:09:21,120
می کنید، باید این کلمه کلیدی خود را به
239
00:09:21,120 –> 00:09:22,800
عنوان اولین آرگومان
240
00:09:22,800 –> 00:09:25,920
متد خود در داخل یک کلاس ارائه دهید، اکنون ممکن است
241
00:09:25,920 –> 00:09:26,399
242
00:09:26,399 –> 00:09:29,680
مشاهده کنید که در اینجا زمانی که
243
00:09:29,680 –> 00:09:32,640
این نمونه کلاس را مقداردهی اولیه می کنم،
244
00:09:32,640 –> 00:09:33,440
هیچ
245
00:09:33,440 –> 00:09:36,240
کلمه کلیدی خود را ارائه نمی دهم، بنابراین حتی اگر در
246
00:09:36,240 –> 00:09:37,519
متد init من
247
00:09:37,519 –> 00:09:40,720
سه آرگومان ارائه کردهام، من فقط دو
248
00:09:40,720 –> 00:09:43,040
آرگومان را در اینجا ارائه میدهم، بنابراین معلوم میشود که
249
00:09:43,040 –> 00:09:44,560
شما نیازی به
250
00:09:44,560 –> 00:09:47,040
ارائه اولین آرگومان که خود است ندارید،
251
00:09:47,040 –> 00:09:49,440
به طور خودکار
252
00:09:49,440 –> 00:09:53,200
به کلاس شما ارائه میشود، بنابراین شما فقط باید
253
00:09:53,200 –> 00:09:55,920
آرگومان بعدی را ارائه دهید. آرگومان شما
254
00:09:55,920 –> 00:09:56,480
255
00:09:56,480 –> 00:09:59,279
پس از سلول ارائه می شود، بنابراین ما سرعت
256
00:09:59,279 –> 00:10:00,320
و رنگ را
257
00:10:00,320 –> 00:10:02,560
بعد از آرگومان self داده ایم، بنابراین فقط
258
00:10:02,560 –> 00:1