در این مطلب، ویدئو تعریف و فراخوانی متدها در پایتون – آموزش مقدماتی برای تعاریف متد و فراخوانی متدها با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:29:50
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,480 –> 00:00:02,399
متد نوع خاصی از تابع است
2
00:00:02,399 –> 00:00:04,560
که در داخل یک کلاس تعریف شده است
3
00:00:04,560 –> 00:00:07,040
و هنگامی که تعریف شود هر شی از
4
00:00:07,040 –> 00:00:09,120
نوع آن کلاس دارای
5
00:00:09,120 –> 00:00:11,360
عملکردهای داخلی جدید مرتبط با آن است.
6
00:00:11,360 –> 00:00:13,280
7
00:00:13,280 –> 00:00:15,120
8
00:00:15,120 –> 00:00:16,480
9
00:00:16,480 –> 00:00:18,080
نام آن را از ما بررسی خواهیم کرد که چرا در یک لحظه
10
00:00:18,080 –> 00:00:19,119
11
00:00:19,119 –> 00:00:20,640
شما قبلاً با
12
00:00:20,640 –> 00:00:22,720
روش هایی روبرو شده اید که از یک لیست استفاده
13
00:00:22,720 –> 00:00:24,720
کرده اید و گفته اید
14
00:00:24,720 –> 00:00:25,680
15
00:00:25,680 –> 00:00:27,680
list.append برای افزودن یک آیتم جدید به لیست لیست خود اضافه کنید تا یک مورد جدید دیگر را اضافه کنید.
16
00:00:27,680 –> 00:00:29,519
list.pop
17
00:00:29,519 –> 00:00:32,159
شما در حال فراخوانی متدها در اشیاء لیست هستند که
18
00:00:32,159 –> 00:00:33,680
در فرآیند انجام این کار به خوبی انجام میشوند.
19
00:00:33,680 –> 00:00:34,880
در این درس میخواهیم
20
00:00:34,880 –> 00:00:36,880
ببینیم چگونه روشهای خود را
21
00:00:36,880 –> 00:00:38,800
در کلاسهای خودمان تعریف کنیم تا بتوانیم
22
00:00:38,800 –> 00:00:40,480
قابلیتها و عملکردهای اضافی را
23
00:00:40,480 –> 00:00:41,440
24
00:00:41,440 –> 00:00:44,320
در هر کلاس ایجاد کنیم. شیء کلاس های ما را تایپ کنید،
25
00:00:44,320 –> 00:00:46,640
بیایید مستقیماً به یک تمرین کدنویسی
26
00:00:46,640 –> 00:00:48,800
برویم و ما یک فایل به نام
27
00:00:48,800 –> 00:00:51,360
ls38 underscore method dot pi را
28
00:00:51,360 –> 00:00:54,480
در فهرست درس های شما تنظیم می کنیم و ادامه می دهیم
29
00:00:54,480 –> 00:00:55,920
و کدی را که در اینجا می بینید یادداشت
30
00:00:55,920 –> 00:00:57,840
کنید. ما در مورد
31
00:00:57,840 –> 00:00:59,359
همه چیزهایی که داریم صحبت می کنیم و سپس
32
00:00:59,359 –> 00:01:01,120
از اینجا ادامه می دهیم تا اولین
33
00:01:01,120 –> 00:01:04,800
روش خود را در یک لحظه
34
00:01:09,920 –> 00:01:11,439
معرفی کنیم، پس بیایید آنچه را که
35
00:01:11,439 –> 00:01:13,360
در اینجا داریم در صفحه نمایش خود تجزیه کنیم و
36
00:01:13,360 –> 00:01:15,360
امیدواریم لحظه ای برای فکر کردن داشته باشید. در مورد آن،
37
00:01:15,360 –> 00:01:16,799
بنابراین ما با
38
00:01:16,799 –> 00:01:19,360
تعریف یک کلاس با نام شخص شروع می کنیم
39
00:01:19,360 –> 00:01:21,520
و این کلاس شخص دارای دو ویژگی
40
00:01:21,520 –> 00:01:23,600
مرتبط با آن است: نام و
41
00:01:23,600 –> 00:01:25,759
سن دارای مقدار پیش فرض صفر
42
00:01:25,759 –> 00:01:28,159
43
00:01:28,159 –> 00:01:29,759
است. درست یا یک
44
00:01:29,759 –> 00:01:31,119
روش سازنده که
45
00:01:31,119 –> 00:01:34,240
بعد از این ویدیو خواهیم دید و این ساخت
46
00:01:34,240 –> 00:01:36,640
یا این روش سازنده موضوعی است
47
00:01:36,640 –> 00:01:38,640
که در درس گذشته معرفی کردیم، بنابراین اگر
48
00:01:38,640 –> 00:01:40,320
آن درس را از دست
49
00:01:40,320 –> 00:01:42,720
دادید، ویدیو را در اینجا یک برگه جدید باز کنید،
50
00:01:42,720 –> 00:01:44,880
آن ویدیو را ببینید که به آن پیوند داده شده است.
51
00:01:44,880 –> 00:01:47,040
درست بالای سمت راست، باید بدانیم
52
00:01:47,040 –> 00:01:48,640
سازنده چیست
53
00:01:48,640 –> 00:01:50,320
تا کدی را که در اینجا با آن کار
54
00:01:50,320 –> 00:01:52,479
می کنیم را درک کنیم و آن اطلاعات را گرفته و
55
00:01:52,479 –> 00:01:54,079
برای درک
56
00:01:54,079 –> 00:01:55,840
روشی که امروز در این مقاله به آن نگاه خواهیم کرد، استفاده می کنیم.
57
00:01:55,840 –> 00:01:58,479
درس تو این که
58
00:01:58,479 –> 00:01:59,200
59
00:01:59,200 –> 00:02:01,600
سازنده پارامتری به نام نام دارد و از آن
60
00:02:01,600 –> 00:02:03,200
پارامتر
61
00:02:03,200 –> 00:02:05,600
برای مقداردهی اولیه کامل ویژگی
62
00:02:05,600 –> 00:02:08,318
نام یک شیء شخص کاملاً جدید استفاده می شود، بنابراین در
63
00:02:08,318 –> 00:02:09,758
تابع اصلی ما می
64
00:02:09,758 –> 00:02:11,520
بینیم که متغیری به نام شخص
65
00:02:11,520 –> 00:02:13,520
a را تنظیم می کنیم. به
66
00:02:13,520 –> 00:02:15,280
یک شی شخص جدید اشاره می کنیم
67
00:02:15,280 –> 00:02:16,800
که با یک
68
00:02:16,800 –> 00:02:18,959
ویژگی نام جو درست می شود، بنابراین با تعریف
69
00:02:18,959 –> 00:02:20,000
آن سازنده،
70
00:02:20,000 –> 00:02:21,599
می توانیم یک شی شخص جدید بسازیم،
71
00:02:21,599 –> 00:02:24,000
سن آن در ابتدا صفر خواهد بود،
72
00:02:24,000 –> 00:02:25,200
این یک بچه جو کاملاً جدید است
73
00:02:25,200 –> 00:02:28,160
که در برنامه ما متولد شده است.
74
00:02:28,160 –> 00:02:29,280
zero age
75
00:02:29,280 –> 00:02:32,160
صفر ساله و با نام joe
76
00:02:32,160 –> 00:02:33,599
که در
77
00:02:33,599 –> 00:02:35,680
هنگام پرینت نام
78
00:02:35,680 –> 00:02:36,879
آن را در هنگام ساخت مقداردهی اولیه کردیم، فقط باید جو چاپ شده را
79
00:02:36,879 –> 00:02:37,280
روی صفحه نمایش ببینیم
80
00:02:37,280 –> 00:02:39,200
تا تأیید کنیم که این برنامه در حالت
81
00:02:39,200 –> 00:02:41,040
کار است، بنابراین من ادامه می دهم
82
00:02:41,040 –> 00:02:44,160
و سعی می کنم اجرای پایتون از ترمینال من
83
00:02:44,160 –> 00:02:45,920
و ما آن را به عنوان یک ماژول اجرا می
84
00:02:45,920 –> 00:02:48,239
کنیم و در حال بررسی
85
00:02:48,239 –> 00:02:50,080
روش های آموزش ls38
86
00:02:50,080 –> 00:02:52,000
هستیم و جو کاملاً درست چاپ می شود.
87
00:02:52,000 –> 00:02:53,599
88
00:02:53,599 –> 00:02:56,239
89
00:02:56,239 –> 00:02:57,040
o
90
00:02:57,040 –> 00:02:59,680
سلام برخی عملکردهای اضافی یک
91
00:02:59,680 –> 00:03:01,200
روش کوچک ساده
92
00:03:01,200 –> 00:03:03,120
بیایید یک تابع تعریف کنیم یا چیزی
93
00:03:03,120 –> 00:03:04,640
که به نظر می رسد یک تابع یاد می گیرد در
94
00:03:04,640 –> 00:03:05,760
واقع متدی
95
00:03:05,760 –> 00:03:08,159
به نام سلام سلام است و
96
00:03:08,159 –> 00:03:10,080
فعلاً یک پارامتر دارد به نام self و
97
00:03:10,080 –> 00:03:10,720
98
00:03:10,720 –> 00:03:13,920
هیچکدام را درست بر نمی گرداند و اوه
99
00:03:13,920 –> 00:03:17,040
سلام کنید کاربر رشته
100
00:03:17,040 –> 00:03:18,400
101
00:03:18,400 –> 00:03:20,080
سندی است که ما در اینجا به عنوان مستندات ارائه می دهیم و ما فقط یک
102
00:03:20,080 –> 00:03:22,080
کار بسیار ساده انجام می دهیم، می گوییم چاپ
103
00:03:22,080 –> 00:03:26,720
کنید و یک رشته f از اوه سلام،
104
00:03:26,720 –> 00:03:32,720
درست است، خب
105
00:03:32,720 –> 00:03:34,239
حالا ممکن است ببینید که ویرایشگر شما در حال ارائه است.
106
00:03:34,239 –> 00:03:35,680
شما یک راهنمایی میگویید سلام، شما
107
00:03:35,680 –> 00:03:37,280
واقعاً از این رشته f
108
00:03:37,280 –> 00:03:39,360
به هیچ وجه معنیدار استفاده نکردهاید، بنابراین مجبور نیستیم
109
00:03:39,360 –> 00:03:40,560
آن را به عنوان یک رشته f تعریف کنیم، اما من
110
00:03:40,560 –> 00:03:41,599
آن را در آنجا رها میکنم، زیرا ما برمیگردیم
111
00:03:41,599 –> 00:03:42,400
112
00:03:42,400 –> 00:03:44,640
و در پارامترسازی یا استفاده میکنیم برخی از
113
00:03:44,640 –> 00:03:46,080
متغیرهایی در رشته f ما در یک
114
00:03:46,080 –> 00:03:47,519
لحظه بسیار خوب است اما در حال حاضر
115
00:03:47,519 –> 00:03:49,840
این تابع یک متد است زیرا ما
116
00:03:49,840 –> 00:03:51,920
آن را در یک کلاس تعریف می کنیم
117
00:03:51,920 –> 00:03:54,799
و ویژگی مهم دیگر
118
00:03:54,799 –> 00:03:56,959
این متد بودن در پایتون این است که یک متد
119
00:03:56,959 –> 00:03:58,720
خاص دارد. اولین پارامتر با
120
00:03:58,720 –> 00:04:00,000
نام self just
121
00:04:00,000 –> 00:04:01,680
li ke سازنده ما کاملاً
122
00:04:01,680 –> 00:04:03,519
مفهوم مشابهی را انجام داده است، اما
123
00:04:03,519 –> 00:04:04,799
کمی متفاوت
124
00:04:04,799 –> 00:04:07,200
عمل میکند، خوب چگونه از این روش استفاده کنیم،
125
00:04:07,200 –> 00:04:08,959
شما قبلاً از روشی استفاده
126
00:04:08,959 –> 00:04:10,400
کردهاید که در آن نام شی یا نام متغیر خود را
127
00:04:10,400 –> 00:04:11,439
128
00:04:11,439 –> 00:04:13,840
گفتهاید و سپس میگویید نقطه و متوجه خواهید شد
129
00:04:13,840 –> 00:04:14,720
که اگر
130
00:04:14,720 –> 00:04:17,358
به شیء خود به نام شخص a خطاب می کنیم، می
131
00:04:17,358 –> 00:04:18,720
بینیم که دارای دو ویژگی
132
00:04:18,720 –> 00:04:20,720
age و name است و سپس اوه،
133
00:04:20,720 –> 00:04:22,720
متد ما به نام سلام، بسیار خوب است، بنابراین
134
00:04:22,720 –> 00:04:25,040
من گزینه say hello را انتخاب می کنم و این
135
00:04:25,040 –> 00:04:26,080
136
00:04:26,080 –> 00:04:28,160
روشی که هیچ پارامتر اضافی ندارد،
137
00:04:28,160 –> 00:04:29,360
ما
138
00:04:29,360 –> 00:04:31,520
هیچ اطلاعات اضافی
139
00:04:31,520 –> 00:04:32,720
به این فراخوانی متد نمی
140
00:04:32,720 –> 00:04:35,759
دهیم، فقط به شخص می گوییم یک سلام
141
00:04:35,759 –> 00:04:37,680
خوب است، بنابراین من برنامه خود را ذخیره می کنم
142
00:04:37,680 –> 00:04:43,120
و بیایید این مثال را اجرا کنیم.
143
00:04:43,120 –> 00:04:45,440
میدانید که hello اکنون چاپ میشود
144
00:04:45,440 –> 00:04:46,880
که خیلی جالب است، به نظر میرسد
145
00:04:46,880 –> 00:04:48,240
چیزی
146
00:04:48,240 –> 00:04:51,280
در اینجا اتفاق میافتد که اجازه میدهد این
147
00:04:51,280 –> 00:04:52,639
تابع ویژه تعریف شده
148
00:04:52,639 –> 00:04:56,000
در داخل یک کلاس شخص
149
00:04:56,000 –> 00:04:59,040
از طریق نام یک شی از همان
150
00:04:59,040 –> 00:04:59,520
کلاس
151
00:04:59,520 –> 00:05:01,600
یک نقطه و سپس این تابع فراخوانی شود. نام یا
152
00:05:01,600 –> 00:05:02,720
این نام متد،
153
00:05:02,720 –> 00:05:05,199
پس بیایید نگاهی به نحوه کار این روش بیندازیم
154
00:05:05,199 –> 00:05:06,240
و
155
00:05:06,240 –> 00:05:07,919
سعی کنیم
156
00:05:07,919 –> 00:05:09,520
تفاوتهای یک تابع
157
00:05:09,520 –> 00:05:11,280
و یک متد را تشخیص دهیم و سپس برمیگردیم
158
00:05:11,280 –> 00:05:12,639
و قابلیتهای اضافی
159
00:05:12,639 –> 00:05:15,360
را به این اضافه میکنیم و از این موجود استفاده بهتری خواهیم کرد.
160
00:05:15,360 –> 00:05:16,080
161
00:05:16,080 –> 00:05:17,520
روشی که به شما نشان میدهد چه چیزی واقعاً
162
00:05:17,520 –> 00:05:19,199
در مورد آنها خاص است،
163
00:05:19,199 –> 00:05:22,160
بنابراین در روشهایی که شما یکی را تعریف میکنید،
164
00:05:22,160 –> 00:05:22,479
165
00:05:22,479 –> 00:05:24,160
بسیار شبیه به یک تعریف تابع به نظر میرسد،
166
00:05:24,160 –> 00:05:26,320
به جز اینکه میخواهید
167
00:05:26,320 –> 00:05:27,919
آن را در داخل بدنه یک کلاس به
168
00:05:27,919 –> 00:05:29,520
درستی تعریف کنید، بنابراین مجبور خواهید بود
169
00:05:29,520 –> 00:05:31,120
این را طوری تورفتگی کنید که
170
00:05:31,120 –> 00:05:33,120
در پایتون به تعریف آن کلاس
171
00:05:33,120 –> 00:05:34,320
تعلق داشته باشد
172
00:05:34,320 –> 00:05:36,400
و نامی به آن بدهید که یک
173
00:05:36,400 –> 00:05:38,160
شناسه باشد درست مانند نام متغیرها
174
00:05:38,160 –> 00:05:39,520
یا نام توابع شما
175
00:05:39,520 –> 00:05:41,360
که اولین پارامتر قرار است خودش باشد
176
00:05:41,360 –> 00:05:43,120
و این برای
177
00:05:43,120 –> 00:05:45,360
تعریف متدی که می توانید آن را فراخوانی کنید مهم است. در
178
00:05:45,360 –> 00:05:46,880
اشیاء این کلاس
179
00:05:46,880 –> 00:05:49,280
،
180
00:05:49,280 –> 00:05:51,440
زمانی که فراخوانی متدی فقط در یک لحظه اتفاق میافتد، دقیقاً به چه چیزی وابسته است
181
00:05:51,440 –> 00:05:52,479
182
00:05:52,479 –> 00:05:53,440
و سپس برخی پارامترها وجود خواهند داشت،
183
00:05:53,440 –> 00:05:55,840
بنابراین اگر
184
00:05:55,840 –> 00:05:57,360
پارامترهای اضافی داشتیم که میخواستیم
185
00:05:57,360 –> 00:05:58,880
من روشی را که
186
00:05:58,880 –> 00:06:00,400
باید در نظر بگیریم میتوانیم آنها را بهعنوان بخشی از
187
00:06:00,400 –> 00:06:02,080
روشهای تعریف متد تعریف
188
00:06:02,080 –> 00:06:04,080
کنیم، درست مانند توابع، انواع بازگشتی دارند،
189
00:06:04,080 –> 00:06:05,840
بنابراین ما همیشه
190
00:06:05,840 –> 00:06:07,120
انواع بازگشت متد را تعریف میکنیم
191
00:06:07,120 –> 00:06:09,039
و سپس بدنه متد جایی است که
192
00:06:09,039 –> 00:06:10,639
دستورالعملهایی که با فراخوانی این متد اجرا میشوند، اجرا میشوند.
193
00:06:10,639 –> 00:06:11,840
194
00:06:11,840 –> 00:06:15,919
زمانی که
195
00:06:15,919 –> 00:06:17,520
متدی را روی کلاس مشخصی تعریف
196
00:06:17,520 –> 00:06:20,800
کردیم، میتوانیم آن متد را با داشتن یک
197
00:06:20,800 –> 00:06:22,639
شی در دسترس خود فراخوانی کنیم، بنابراین یک شی
198
00:06:22,639 –> 00:06:24,319
که ملزم به گفتن نام متغیر است یا
199
00:06:24,319 –> 00:06:26,080
به روشی دیگر به آن دسترسی داریم،
200
00:06:26,080 –> 00:06:28,240
اما به یک مرجع دسترسی دارد. یک شی به
201
00:06:28,240 –> 00:06:30,479
دنبال آن یک نقطه و سپس نام متد
202
00:06:30,479 –> 00:06:32,560
بعد از آن با پرانتز می آید
203
00:06:32,560 –> 00:06:34,400
و در داخل آن پرانتزها
204
00:06:34,400 –> 00:06:36,560
اگر پارامترهای اضافی تعریف
205
00:06:36,560 –> 00:06:38,240
شده بود، باید
206
00:06:38,240 –> 00:06:40,000
آرگومان های اضافی را در اینجا دقیقاً مانند هر
207
00:06:40,000 –> 00:06:41,840
تابع دیگری به درستی مشخص کنیم، بنابراین این
208
00:06:41,840 –> 00:06:43,600
مانند یک فراخوانی تابع است که مرتب سازی شده است.
209
00:06:43,600 –> 00:06:46,319
خاص و دارای برخی قابلیتهای اضافی است،
210
00:06:46,319 –> 00:06:47,919
بنابراین اگر بخواهیم مقایسه کنیم که چگونه
211
00:06:47,919 –> 00:06:49,599
در مورد یک تابع کوچک
212
00:06:49,599 –> 00:06:51,599
در مقابل یک روش فکر میکنیم، اگر یک
213
00:06:51,599 –> 00:06:53,599
تابع احمقانه را تعریف کنیم، میتوانیم بگوییم
214
00:06:53,599 –> 00:06:55,039
یک تابع همانطور که در اینجا مشاهده می کنیم، در مورد نام، سلام بگویید
215
00:06:55,039 –> 00:06:57,599
و ما آن را فقط با
216
00:06:57,599 –> 00:06:58,560
217
00:06:58,560 –> 00:07:01,280
استفاده مستقیم از نام آن تابع، به خوبی بگویید سلام و
218
00:07:01,280 –> 00:07:02,080
پرانتز را صدا می
219
00:07:02,080 –> 00:07:04,960
زنیم، با روشی که می
220
00:07:04,960 –> 00:07:05,360
221
00:07:05,360 –> 00:07:06,960
گوییم این را در داخل
222
00:07:06,960 –> 00:07:08,960
بافت تعریف کلاس ها درست تعریف می کنیم.
223
00:07:08,960 –> 00:07:11,759
و ما باید این پارامتر خاص را
224
00:07:11,759 –> 00:07:13,039
خود ارائه
225
00:07:13,039 –> 00:07:14,639
دهیم و هنوز از آن استفاده نمی
226
00:07:14,639 –> 00:07:16,639
کنیم، اما در چند مثال دیگر خواهیم دید که چرا مهم است و چرا
227
00:07:16,639 –> 00:07:16,960
228
00:07:16,960 –> 00:07:20,400
اینقدر جالب است
229
00:07:20,400 –> 00:07:22,880
و سپس وقتی این روش را تعریف
230
00:07:22,880 –> 00:07:25,120
کردیم، می توانیم برای فراخوانی آن با داشتن یک شیء شخصی
231
00:07:25,120 –> 00:07:25,759
232
00:07:25,759 –> 00:07:27,520
و در حال حاضر به این فکر می کنید که وای
233
00:07:27,520 –> 00:07:29,280
آیا به نظر نمی رسد این کار اضافی زیاد
234
00:07:29,280 –> 00:07:31,360
باشد هر دوی این مثال ها به
235
00:07:31,360 –> 00:07:33,840
کد بیشتری از توابع نیاز دارند،
236
00:07:33,840 –> 00:07:35,919
خوب اجازه دهید نگاهی
237
00:07:35,919 –> 00:07:38,240
به اهمیت متدها در این موارد بیندازیم.
238
00:07:38,240 –> 00:07:39,520
مثالها
239
00:07:39,520 –> 00:07:41,440
و مزایای واقعی استفاده از آنها چیست
240
00:07:41,440 –> 00:07:42,880
و چرا برای
241
00:07:42,880 –> 00:07:45,280
مفهوم برنامهنویسی شی گرا مهم
242
00:07:45,280 –> 00:07:46,879
243
00:07:46,879 –> 00:07:49,280
244
00:07:49,280 –> 00:07:49,680
245
00:07:49,680 –> 00:07:52,400
هستند، بنابراین میخواهم قبل از افشای بزرگ این موضوع که چرا آنها بسیار باحال هستند، چه کاری انجام دهید تا احساس کنید. ادامه دهید و
246
00:07:52,400 –> 00:07:53,360
ویدیو را در اینجا متوقف کنید
247
00:07:53,360 –> 00:07:55,120
و سعی کنید از طریق
248
00:07:55,120 –> 00:07:56,479
دستورالعمل های
249
00:07:56,479 –> 00:08:00,400
این اسلاید تابع sayhello را به روز کنید
250
00:08:00,400 –> 00:08:03,840
تا همانطور که در اینجا می بینید رفتار
251
00:08:03,840 –> 00:08:05,440
کند و کمی متفاوت کار کنید
252
00:08:05,440 –> 00:08:07,199
تا نام شی را چاپ
253
00:08:07,199 –> 00:08:09,520
کنید و سپس سعی کنید شی شخص دیگری
254
00:08:09,520 –> 00:08:11,360
را در تابع اصلی بسازید
255
00:08:11,360 –> 00:08:13,280
به طوری که دو شیء شخص با آن داشته باشید.
256
00:08:13,280 –> 00:08:15,120
نامهای مختلف را امتحان کنید و سعی کنید
257
00:08:15,120 –> 00:08:17,759
از آن شیء نیز سلام کنید،
258
00:08:17,759 –> 00:08:20,000
هنگامی که در حال اجرا بودید، ویدیو را لغو مکث
259
00:08:20,000 –> 00:08:21,599
کنید و ما
260
00:08:21,599 –> 00:08:27,280
با این
261
00:08:27,280 –> 00:08:29,360
مثال ادامه میدهیم، بنابراین بیایید مستقیماً به
262
00:08:29,360 –> 00:08:31,280
263
00:08:31,280 –> 00:08:34,080
آن بپریم، هدف از این اصلاح
264
00:08:34,080 –> 00:08:35,200
تغییر تبریک است.
265
00:08:35,200 –> 00:08:36,958
که ما به عنوان بخشی از روش سلام سلام بر روی صفحه نمایش می دهیم یا چاپ می کنیم،
266
00:08:36,958 –> 00:08:38,559
267
00:08:38,559 –> 00:08:40,399
اگر بخواهم
268
00:08:40,399 –> 00:08:42,320
نمونه دقیق
269
00:08:42,320 –> 00:08:43,519
اسلاید hello
270
00:08:43,519 –> 00:08:47,200
i’m و سپس self.net نام hello
271
00:08:47,200 –> 00:08:49,440
i’m را به همراه داشته باشم سلام آه. “در اینجا از یک مکان نگهدار fstring
272
00:08:49,440 –> 00:08:51,519
در اینجا self.name
273
00:08:51,519 –> 00:08:53,600
درست استفاده می کنیم، بنابراین ما این عبارت را رها می کنیم
274
00:08:53,600 –> 00:08:54,720
275
00:08:54,720 –> 00:08:56,399
و متوجه می شویم که می گوییم self و سپس
276
00:08:56,399 –> 00:08:58,160
به ویژگی نام
277
00:08:58,160 –> 00:08:58,880
self
278
00:08:58,880 –> 00:09:01,120
و آنچه می توانیم از داشتن prev درک کنیم، دسترسی پیدا می کنیم.
279
00:09:01,120 –> 00:09:03,360
روشی با نام init که به طرز عجیبی تعریف شده
280
00:09:03,360 –> 00:09:06,160
است باید به این شی اشاره داشته باشد، بنابراین
281
00:09:06,160 –> 00:09:08,160
نام باید به ویژگی یک
282
00:09:08,160 –> 00:09:09,279
شی شخص اشاره داشته باشد،
283
00:09:09,279 –> 00:09:11,120
ما دقیقاً به نحوه
284
00:09:11,120 –> 00:09:12,640
محدود شدن خود به عنوان بخشی از این فرآیند در
285
00:09:12,640 –> 00:09:13,200
یک لحظه نگاه خواهیم کرد،
286
00:09:13,200 –> 00:09:15,360
اما اجازه دهید ادامه دهیم و سعی کنیم
287
00:09:15,360 –> 00:09:16,320
تکمیل
288
00:09:16,320 –> 00:09:19,279
این تمرین با گفتن oky person b این است
289
00:09:19,279 –> 00:09:21,440
که شخص دیگری را
290
00:09:21,440 –> 00:09:25,360
به نام uh jody
291
00:09:25,360 –> 00:09:29,200
و شخص b dot بگویید سلام
292
00:09:29,200 –> 00:09:30,160
روش دیگری است تماس بگیرید
293
00:09:30,160 –> 00:09:33,760
خوب حالا توجه کنید
294
00:09:33,760 –> 00:09:35,120
که روشی که ما روی هر یک از
295
00:09:35,120 –> 00:09:36,880
این اشیاء صدا می زنیم دقیقاً همان روشی است که ما نیستیم.
296
00:09:36,880 –> 00:09:39,360
به آن آرگومان های متفاوتی
297
00:09:39,360 –> 00:09:41,440
می دهیم در واقع ما به هیچ وجه به
298
00:09:41,440 –> 00:09:42,720
آن آرگومان
299
00:09:42,720 –> 00:09:44,480
نمی دهیم، تنها تفاوت این است که کدام شی
300
00:09:44,480 –> 00:09:46,160
را در سمت راست آن متد را فراخوانی می کنیم،
301
00:09:46,160 –> 00:09:48,080
بنابراین بیایید ببینیم که آیا
302
00:09:48,080 –> 00:09:49,440
وقتی می رویم و این را درست اجرا می کنیم تاثیری وجود دارد یا خیر، بنابراین من
303
00:09:49,440 –> 00:09:50,399
می روم برای پاک کردن
304
00:09:50,399 –> 00:09:52,560
خروجی خود در اینجا و و اجازه دهید به
305
00:09:52,560 –> 00:09:53,519
این تابع اصلی نگاهی بیندازیم
306
00:09:53,519 –> 00:09:56,800
و متد hello را در صفحه نمایش نگه داریم،
307
00:09:56,800 –> 00:09:59,440
بنابراین دوباره این را اجرا می کنم و متوجه
308
00:09:59,440 –> 00:10:00,000
می شوم که می گوید
309
00:10:00,000 –> 00:10:02,480
hello i am joe hello i am jody و
310
00:10:02,480 –> 00:10:03,279
امیدوارم که این
311
00:10:03,279 –> 00:10:04,880
حس بصری درست باشد
312
00:10:04,880 –> 00:10:06,560
شخص a p بود erson ما آن را به عنوان فردی تنظیم کردیم
313
00:10:06,560 –> 00:10:08,000
که ویژگی
314
00:10:08,000 –> 00:10:09,200
نامش به جو
315
00:10:09,200 –> 00:10:12,320
شخص تنظیم شد. یک سلام سلام من جو هستم همان
316
00:10:12,320 –> 00:10:14,000
ایده با شخص b شخص b نقطه سلام
317
00:10:14,000 –> 00:10:14,560
318
00:10:14,560 –> 00:10:16,399
سلام من جودی هستم فقط برای اینکه
319
00:10:16,399 –> 00:10:17,760
خودمان را متقاعد کنیم که چیزی با جو تغییر نکرده است.
320
00:10:17,760 –> 00:10:19,760
به شخص یک نقطه بگویید
321
00:10:19,760 –> 00:10:22,079
دوباره سلام کنید
322
00:10:22,959 –> 00:10:26,640
و خواهیم دید که مطمئنا
323
00:10:26,640 –> 00:10:29,440
جو و جودی دو شی متمایز در
324
00:10:29,440 –> 00:10:30,959
حافظه برنامه ما هستند
325
00:10:30,959 –> 00:10:33,120
و وقتی روش سلام سلام را بر روی
326
00:10:33,120 –> 00:10:34,560
هر یک از آن اشیاء فراخوانی می کنیم
327
00:10:34,560 –> 00:10:36,399
، نتیجه کمی متفاوت است،
328
00:10:36,399 –> 00:10:38,640
درست نسبت به شیء است.
329
00:10:38,640 –> 00:10:39,360
ما متد را
330
00:10:39,360 –> 00:10:42,800
روشن صدا زدیم، بنابراین من میروم و
331
00:10:42,800 –> 00:10:45,839
آن خط را حذف میکنم تا دو نفر به
332
00:10:45,839 –> 00:10:47,360
ما سلام کنند
333
00:10:47,360 –> 00:10:49,279
و در واقع من فقط میخواهم
334
00:10:49,279 –> 00:10:50,959
این را برای یک نمودار تغییر دهیم تا
335
00:10:50,959 –> 00:10:52,800
بتوانیم بفهمیم چه خبر است
336
00:10:52,800 –> 00:10:55,120
و
337
00:10:56,000 –> 00:10:58,240
برای اهداف این نمودار، من
338
00:10:58,240 –> 00:11:00,079
فقط یک مثال خواهم داشت، به
339
00:11:00,079 –> 00:11:02,079
طوری که ما فقط چند فریم
340
00:11:02,079 –> 00:11:03,120
برای استدلال
341
00:11:03,120 –> 00:11:05,680
روی صفحه نمایش خود داشته باشیم، و اجازه دهید ببینم آیا
342
00:11:05,680 –> 00:11:07,360
می توانم کمی بیشتر از این را برای جا انداختن عالی داشته باشم،
343
00:11:07,360 –> 00:11:10,880
پس چگونه آیا این است که
344
00:11:10,880 –> 00:11:14,079
خود یک مرجع
345
00:11:14,079 –> 00:11:16,560
t می شود o شی شخصی که نامش جو است
346
00:11:16,560 –> 00:11:17,200
درست است،
347
00:11:17,200 –> 00:11:18,880
ما می دانیم که این قرار است
348
00:11:18,880 –> 00:11:20,720
بر اساس اجرای
349
00:11:20,720 –> 00:11:21,760
این برنامه به جو ارزیابی شود،
350
00:11:21,760 –> 00:11:23,680
اما در زیر کلاه واقعاً چه اتفاقی می
351
00:11:23,680 –> 00:11:25,680
افتد و چگونه کار می
352
00:11:25,680 –> 00:11:27,839
کند، بیایید سعی کنیم این را با
353
00:11:27,839 –> 00:11:29,519
یک نمودار سریع ردیابی کنیم.
354
00:11:29,519 –> 00:11:31,680
و من میخواهم
355
00:11:31,680 –> 00:11:33,200
تنظیمات قسمتهای اول این نمودار را
356
00:11:33,200 –> 00:11:34,000
خیلی سریع
357
00:11:34,000 –> 00:11:36,160
انجام دهم تا بتوانیم در یک لحظه مستقیماً به قسمتهای جالب بپریم،
358
00:11:36,160 –> 00:11:37,200
359
00:11:37,200 –> 00:11:40,320
خیلی خوب، من جلوتر رفتم
360
00:11:40,320 –> 00:11:40,959
361
00:11:40,959 –> 00:11:43,839
و فریم جهانی را تنظیم کردم
362
00:11:43,839 –> 00:11:45,120
و سپس
363
00:11:45,120 –> 00:11:47,360
مقداردهی اولیه یا
364
00:11:47,360 –> 00:11:49,279
ساخت شی شخص که نامش جو است
365
00:11:49,279 –> 00:11:50,399
و سن
366
00:11:50,399 –> 00:11:53,519
اولیه آن صفر یا به طور پیش فرض صفر
367
00:11:53,519 –> 00:11:55,200
است، چند مرحله در این امر دخیل است، من
368
00:11:55,200 –> 00:11:56,720
شما را تشویق می
369
00:11:56,720 –> 00:11:58,639
کنم ویدیو را مکث کنید و سعی
370
00:11:58,639 –> 00:11:59,920
کنید دقیقاً به همین
371
00:11:59,920 –> 00:12:01,839
نقطه ردیابی کنید. سوالی در مورد نحوه
372
00:12:01,839 –> 00:12:02,959
373
00:12:02,959 –> 00:12:06,079
فراخوانی فریمورک های ساخت یا روش init
374
00:12:06,079 –> 00:12:07,760
که به عنوان بخشی از ساخت
375
00:12:07,760 –> 00:12:10,160
این شی شخص در خط 20 اتفاق می افتد دارید، سپس
376
00:12:10,160 –> 00:12:11,600
تماشای ویدیوی قبلی و f را تشویق می کنم.
377
00:12:11,600 –> 00:12:12,240
378
00:12:12,240 –> 00:12:13,760
379
00:12:13,760 –> 00:12:16,639
قبل از ادامه دادن در اینجا، نمودار آن را
380
00:12:16,639 –> 00:12:20,079
ادامه دهید، بنابراین این ویدیو در خط
381
00:12:20,079 –> 00:12:22,240
بین خطوط 20 و 21 متوقف می شود. ما فقط
382
00:12:22,240 –> 00:12:24,000
در شرف ارزیابی فراخوانی روش هستیم
383
00:12:24,000 –> 00:12:27,680
که تمرکز درس امروز است
384
00:12:27,680 –> 00:12:30,000
و اگر هنوز به آن توجه نکرده اید ادامه دهید
385
00:12:30,000 –> 00:12:31,200
و در اینجا مکث کنید
386
00:12:31,200 –> 00:12:32,959
تا بتوانیم بقیه موارد
387
00:12:32,959 –> 00:12:39,839
را با هم
388
00:12:41,440 –> 00:12:44,079
کار کنیم تا آماده ارزیابی
389
00:12:44,079 –> 00:12:45,279
این فراخوانی متد باشیم
390
00:12:45,279 –> 00:12:46,639
و چگونه بفهمیم که
391
00:12:46,639 –> 00:12:48,639
با یک فراخوانی متد کار می
392
00:12:48,639 –> 00:12:51,279
کنیم، خوب می بینیم که این فراخوانی متد را ارزیابی می کنیم. نام یک
393
00:12:51,279 –> 00:12:53,200
شی یا نام متغیری که
394
00:12:53,200 –> 00:12:55,040
به یک شی اشاره دارد، بنابراین شخص a
395
00:12:55,040 –> 00:12:56,320
نگاه می کنیم که شخص a چیست و می بینیم
396
00:12:56,320 –> 00:12:57,600
که در مین فریم ما است
397
00:12:57,600 –> 00:12:59,839
و اشاره به یک شی شخص
398
00:12:59,839 –> 00:13:00,800
در سمت راست پشته است
399
00:13:00,800 –> 00:13:02,240
تا بدانیم که ما با
400
00:13:02,240 –> 00:13:04,240
یک نوع شی کار می کنیم و
401
00:13:04,240 –> 00:13:07,200
نوع آن شخص است و سپس یک نقطه را می بینیم و
402
00:13:07,200 –> 00:13:09,279
آن عملگر نقطه می گوید خوب
403
00:13:09,279 –> 00:13:11,600
این فلش را دنبال کنید و سپس چیزی را می بینیم
404
00:13:11,600 –> 00:13:13,440
که شبیه یک فراخوانی تابع است،
405
00:13:13,440 –> 00:13:15,040
اما چون در زمینه کار می کنیم
406
00:13:15,040 –> 00:13:17,600
عملگر نقطه ای که از عملگر نقطه پیروی می
407
00:13:17,600 –> 00:13:18,639
کند یا
408
00:13:18,639 –> 00:13:20,560
این یک فراخوانی تابع نیست، بلکه یک فراخوانی متد است
409
00:13:20,560 –> 00:13:23,120
و وقتی یک فراخوانی متد را
410
00:13:23,120 –> 00:13:25,120
میبینیم، قوانین اضافی دیگری داریم که
411
00:13:25,120 –> 00:13:26,880
باید از آنها پیروی کنیم و مراقب باشیم،
412
00:13:26,880 –> 00:13:28,560
بنابراین یکی از اولین قوانینی که
413
00:13:28,560 –> 00:13:31,040
باید مراقب آن باشیم این است. ما می گوییم خوب، خوب
414
00:13:31,040 –> 00:13:33,279
چه نوع شیئی را در حال حاضر این روش را صدا می زنیم
415
00:13:33,279 –> 00:13:34,639
416
00:13:34,639 –> 00:13:36,320
، نام این نوع آن را نشان می دهد،
417
00:13:36,320 –> 00:13:38,800
اما می توانیم تصور کنیم که این
418
00:13:38,800 –> 00:13:40,720
متغیر نامگذاری شده است که کلمه
419
00:13:40,720 –> 00:13:42,320
person در آن وجود ندارد و متوجه می شویم که
420
00:13:42,320 –> 00:13:43,440
چیزی برای با نام
421
00:13:43,440 –> 00:13:44,240
متغیر
422
00:13:44,240 –> 00:13:46,160
انجام دهید، همه چیز مربوط به نوع
423
00:13:46,160 –> 00:13:48,079
شی ای است که ما در واقع با آن
424
00:13:48,079 –> 00:13:50,800
درست کار می کنیم، بنابراین person.a گفت این فلش
425
00:13:50,800 –> 00:13:51,839
و هر نوع
426
00:13:51,839 –> 00:13:53,760
شی ای را که در اینجا داریم دنبال کنید و در
427
00:13:53,760 –> 00:13:55,120
این مورد چیزی از نوع
428
00:13:55,120 –> 00:13:58,079
شخص است. برو نگاه کن و ببین آیا در
429
00:13:58,079 –> 00:13:59,120
430
00:13:59,120 –> 00:14:01,519
تعریف کلاس متدی تعریف شده است که با
431
00:14:01,519 –> 00:14:02,399
همان نام
432
00:14:02,399 –> 00:14:04,160
و مطمئناً متد say hello
433
00:14:04,160 –> 00:14:06,320
در این کلاس تعریف شده است،
434
00:14:06,320 –> 00:14:08,160
اکنون این یک مرحله مهم است زیرا
435
00:14:08,160 –> 00:14:09,920
شما در واقع می توانید نام متد یکسانی
436
00:14:09,920 –> 00:14:12,000
را در بسیاری از کلاس های مختلف تعریف کنید.
437
00:14:12,000 –> 00:14:14,639
درست است شما میتوانید حیوانات داشته باشید و حیوانات
438
00:14:14,639 –> 00:14:16,399
میتوانند روش صحبت کردن
439
00:14:16,399 –> 00:14:18,480
برای سگ داشته باشند، ممکن است از این قبیل چیزها
440
00:14:18,480 –> 00:14:19,760
441
00:14:19,760 –> 00:14:22,399
استفاده کنید، بنابراین روشها میتوانند
442
00:14:22,399 –> 00:14:23,839
تا زمانی که در کلاسهای مختلف تعریف شده باشند، روشهای زیادی به همین نام داشته باشید
443
00:14:23,839 –> 00:14:25,920
444
00:14:25,920 –> 00:14:28,079
و در این مورد ما. دوباره با
445
00:14:28,079 –> 00:14:30,000
متد say hello که در کلاس شخص تعریف شده است،
446
00:14:30,000 –> 00:14:32,959
کار کنید، به طوری که اکنون بررسی می شود،
447
00:14:32,959 –> 00:14:33,440
448
00:14:33,440 –> 00:14:35,920
خوب است، خوب این پارامتر self
449
00:14:35,920 –> 00:14:37,120
چیزی جالب
450
00:14:37,120 –> 00:14:38,639
است و برای تنظیم آن باید اتفاق بیفتد
451
00:14:38,639 –> 00:14:40,800
، اما در غیر این صورت، هیچ چیزی را نمی بینیم.
452
00:14:40,800 –> 00:14:42,160
سایر پارامترها و این
453
00:14:42,160 –> 00:14:42,880
اشکالی ندارد زیرا ما
454
00:14:42,880 –> 00:14:45,440
هیچ آرگومان دیگری را نیز نمی بینیم، بنابراین چگونه می توانیم
455
00:14:45,440 –> 00:14:47,440
یک فراخوانی متد
456
00:14:47,440 –> 00:14:49,279
را از نظر نمودار حافظه خود ارزیابی