در این مطلب، ویدئو روش های جادویی پایتون | تفاوت بین __str__ تا __repr__ با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:14:03
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:02,180 –> 00:00:05,990
[موسیقی]
2
00:00:07,040 –> 00:00:08,880
سلام به همه، امیدوارم همه چیز با شما خوب پیش برود،
3
00:00:08,880 –> 00:00:09,920
4
00:00:09,920 –> 00:00:11,920
بنابراین با خوشامدگویی به همه شروع می کنم
5
00:00:11,920 –> 00:00:13,360
که این اولین ویدیوی آنها در کانال من است
6
00:00:13,360 –> 00:00:14,000
7
00:00:14,000 –> 00:00:15,920
و اگر از محتوای اینجا لذت ببرید،
8
00:00:15,920 –> 00:00:17,440
اگر انگشت شست را فشار دهید برای من اهمیت زیادی خواهد داشت
9
00:00:17,440 –> 00:00:19,039
. روی آن ویدیو را فشار دهید
10
00:00:19,039 –> 00:00:20,880
و من از بازخورد شما در مورد ویدیوهای من نیز سپاسگزارم
11
00:00:20,880 –> 00:00:22,160
12
00:00:22,160 –> 00:00:24,080
و فقط یک پیام سریع برای همه
13
00:00:24,080 –> 00:00:26,240
اخیراً من سعی می کنم
14
00:00:26,240 –> 00:00:27,359
15
00:00:27,359 –> 00:00:30,000
با آپلود ویدیوهای زنده که در آن نکات مربوط به پایتون را به اشتراک می گذارم در اینستاگرام منسجم تر
16
00:00:30,000 –> 00:00:31,359
17
00:00:31,359 –> 00:00:33,440
باشم، بنابراین شما قطعاً می توانید به آن لایو بپیوندید.
18
00:00:33,440 –> 00:00:35,920
جلساتی برای گسترش مهارت های پایتون
19
00:00:35,920 –> 00:00:38,079
و پرسیدن سوالات از من در آنجا نیز
20
00:00:38,079 –> 00:00:39,600
خوب است، بنابراین
21
00:00:39,600 –> 00:00:42,320
تمرکز امروز بر روی روش های جادویی
22
00:00:42,320 –> 00:00:43,440
با پایتون است،
23
00:00:43,440 –> 00:00:45,440
اکنون در این ویدیو به خصوص ما می
24
00:00:45,440 –> 00:00:46,719
خواهیم
25
00:00:46,719 –> 00:00:49,840
تفاوت های بین dunder str
26
00:00:49,840 –> 00:00:53,440
و dunder r epr را درک کنیم. قبلاً هرگز
27
00:00:53,440 –> 00:00:55,440
از من نشنیده بودم که بگویم dunder اساساً
28
00:00:55,440 –> 00:00:57,840
این یک روش کوتاه شده برای گفتن آندرخط دوبل است،
29
00:00:57,840 –> 00:00:58,640
30
00:00:58,640 –> 00:01:00,719
بنابراین علاوه بر خط پایین دوبل،
31
00:01:00,719 –> 00:01:02,399
میتوانم در طول این ویدیو بگویم dunder
32
00:01:02,399 –> 00:01:05,280
و آن روشهای جادویی همان چیزی است که من میگویم. امروز
33
00:01:05,280 –> 00:01:07,439
سعی می کنم برای شما توضیح بدهم حالا
34
00:01:07,439 –> 00:01:09,439
بیایید برای کسانی
35
00:01:09,439 –> 00:01:11,119
که در مورد
36
00:01:11,119 –> 00:01:13,920
روش های جادویی
37
00:01:13,920 –> 00:01:15,200
38
00:01:15,200 –> 00:01:18,000
39
00:01:18,000 –> 00:01:18,799
40
00:01:18,799 –> 00:01:21,200
چیزی نشنیده اند
41
00:01:21,200 –> 00:01:23,200
توضیح کوتاهی بدهیم. در
42
00:01:23,200 –> 00:01:25,439
شی python که با آن کار
43
00:01:25,439 –> 00:01:28,479
می کنید برخی از اقدامات را انجام دهید یا
44
00:01:28,479 –> 00:01:31,439
زمانی که آن متدهای جادویی را بر روی یک شی پایتون خاص اعمال می کنید، اطلاعات مفیدی را به شما برمی گرداند،
45
00:01:31,439 –> 00:01:34,400
بنابراین
46
00:01:34,400 –> 00:01:36,000
من با توضیح
47
00:01:36,000 –> 00:01:38,960
اینکه متد dunder str چه کار می کند شروع می کنم و بعداً
48
00:01:38,960 –> 00:01:40,240
49
00:01:40,240 –> 00:01:42,320
حرکت خواهیم کرد. به تفاوت بین dunder
50
00:01:42,320 –> 00:01:44,640
str تا thunder repr
51
00:01:44,640 –> 00:01:46,640
بنابراین قبل از اینکه واقعاً جلو برویم، اجازه دهید
52
00:01:46,640 –> 00:01:49,119
یک مثال سریع ارائه دهیم که چگونه می توانیم ببینیم
53
00:01:49,119 –> 00:01:50,640
dandruff tr چه کاری انجام می دهد،
54
00:01:50,640 –> 00:01:53,119
بنابراین بیایید سعی کنیم یک متغیر در اینجا ایجاد کنیم
55
00:01:53,119 –> 00:01:53,680
مانند یک
56
00:01:53,680 –> 00:01:56,640
برابر با 1 و سعی کنیم این
57
00:01:56,640 –> 00:01:57,360
متغیر را
58
00:01:57,360 –> 00:02:00,159
به صورت رشته چاپ کنیم. ما اساساً میتوانیم به اینجا برویم
59
00:02:00,159 –> 00:02:02,960
و تبدیل را به آن متغیر اعمال کنیم
60
00:02:02,960 –> 00:02:05,439
و آن را چاپ کنیم، بنابراین اگر من این را
61
00:02:05,439 –> 00:02:06,240
چاپ کنم،
62
00:02:06,240 –> 00:02:09,520
میتوانیم ببینیم که هنوز یکی است
63
00:02:09,520 –> 00:02:12,319
اما به یک stri تبدیل میشود. بنابراین من
64
00:02:12,319 –> 00:02:14,000
اساساً میتوانم به اینجا بروم
65
00:02:14,000 –> 00:02:16,000
و چیزی شبیه به آن بنویسم و
66
00:02:16,000 –> 00:02:17,040
نتیجه آن 111
67
00:02:17,040 –> 00:02:19,840
واهد بود، حالا چه چیزی در مو
68
00:02:19,840 –> 00:02:21,520
د dunder str در
69
00:02:21,520 –> 00:02:24,319
لاسهای خودتان بسیار زیبا است، شما اساساً میتوانید تص
70
00:02:24,319 –> 00:02:25,280
یم بگیرید که
71
00:02:25,280 –> 00:02:27,840
گر شی خود را به رشته تبدیل کنید چه اتفاقی میافتد، زی
72
00:02:27,840 –> 00:02:28,560
73
00:02:28,560 –> 00:02:30,879
ا به همین دلیل است که
74
00:02:30,879 –> 00:02:32,480
متد dunder str برای
75
00:02:32,480 –> 00:02:34,800
این طراحی شده است که شما می توانید اساساً
76
00:02:34,800 –> 00:02:35,519
77
00:02:35,519 –> 00:02:38,400
رفتار اشیاء خود را هنگام
78
00:02:38,400 –> 00:02:39,440
تبدیل آنها
79
00:02:39,440 –> 00:02:42,959
به رشته لغو کنید، بنابراین بیایید ادامه دهیم و این کار را انجام دهیم،
80
00:02:42,959 –> 00:02:45,519
بنابراین من از ترمینال خود در اینجا خارج می شوم و
81
00:02:45,519 –> 00:02:47,440
همه چیز را از اینجا حذف می کنم
82
00:02:47,440 –> 00:02:49,519
و کلاسی ایجاد می کنم که قرار است
83
00:02:49,519 –> 00:02:50,720
84
00:02:50,720 –> 00:02:53,519
اعداد صحیح سفارشی شده نامگذاری شوند، بنابراین در واقع
85
00:02:53,519 –> 00:02:55,440
دلیلی وجود دارد که من این تابع را
86
00:02:55,440 –> 00:02:56,080
همانطور که هست فراخوانی
87
00:02:56,080 –> 00:02:58,720
میکنم، زیرا قرار است شمارهای را
88
00:02:58,720 –> 00:02:59,280
در اینجا دریافت
89
00:02:59,280 –> 00:03:02,319
کنیم و سعی میکنیم
90
00:03:02,319 –> 00:03:05,760
زمانی که شیء این کلاس را تبدیل میکنیم، اقدام خودمان را بنویسیم.
91
00:03:05,760 –> 00:03:06,560
92
00:03:06,560 –> 00:03:09,200
به یک رشته بنابراین قبل از اینکه جلو برویم و این کار را انجام
93
00:03:09,200 –> 00:03:09,760
94
00:03:09,760 –> 00:03:12,720
دهیم، بیایید جلو برویم و سعی کنیم یک
95
00:03:12,720 –> 00:03:13,680
متغیر را
96
00:03:13,680 –> 00:03:17,040
هنگام ایجاد اشیاء از این کلاس
97
00:03:17,040 –> 00:03:20,080
دریافت کنیم، بنابراین بیایید در اینجا یک عدد یا
98
00:03:20,080 –> 00:03:23,120
شاید عدد صحیح دریافت کنیم که بهتر است و
99
00:03:23,120 –> 00:03:23,640
سپس
100
00:03:23,640 –> 00:03:26,640
self.integer برابر با عدد صحیح است
101
00:03:26,640 –> 00:03:30,000
حالا بیایید از کلاس خود در اینجا خارج شویم و
102
00:03:30,000 –> 00:03:33,680
یک عدد صحیح سفارشی شده ایجاد کنیم
103
00:03:33,680 –> 00:03:37,200
و اساساً من اینجا 4 را وارد می کنم و
104
00:03:37,200 –> 00:03:40,560
اکنون اگر می خواهم ادامه
105
00:03:40,560 –> 00:03:43,920
106
00:03:43,920 –> 00:03:46,400
دهم و در اینجا به 1 چاپ کنم در واقع اجازه دهید قبل از چاپ این یکی را امتحان کنیم.
107
00:03:46,400 –> 00:03:48,400
بنابراین من سعی می کنم این
108
00:03:48,400 –> 00:03:51,680
شی را به رشته تبدیل کنم و اگر آن را چاپ
109
00:03:51,680 –> 00:03:54,799
کنیم باید نتیجه زیر را
110
00:03:54,799 –> 00:03:57,920
ببینیم زیرا ما
111
00:03:57,920 –> 00:04:01,200
با متد dunder str هنوز در
112
00:04:01,200 –> 00:04:04,400
کلاس خود کاری انجام نمی دهیم، بنابراین بیایید جلو برویم
113
00:04:04,400 –> 00:04:06,959
و کمی سفارشی سازی کنیم
114
00:04:06,959 –> 00:04:08,000
کلاس ما در اینجا است،
115
00:04:08,000 –> 00:04:10,560
بنابراین من اساساً سعی می کنم
116
00:04:10,560 –> 00:04:12,720
روش جادویی thunder str را نادیده
117
00:04:12,720 –> 00:04:15,040
118
00:04:15,040 –> 00:04:16,000
119
00:04:16,000 –> 00:04:19,519
120
00:04:19,519 –> 00:04:23,360
بگیرم و سعی می کنم وقتی این شی را به رشته تبدیل می کنیم نتیجه متفاوتی را برگردانم، بنابراین بیایید اینجا dunder str را بنویسیم
121
00:04:23,360 –> 00:04:26,000
و self را به عنوان پارامتر دریافت می کند
122
00:04:26,000 –> 00:04:26,800
123
00:04:26,800 –> 00:04:29,840
و ما سفارشی شده برمی گردیم.
124
00:04:30,000 –> 00:04:33,120
عدد صحیح
125
00:04:33,120 –> 00:04:36,160
مانند آن بسیار خوب است، بنابراین بیایید در واقع یک
126
00:04:36,160 –> 00:04:38,160
رشته فرمت شده را در اینجا
127
00:04:38,160 –> 00:04:41,680
اضافه کنیم و سعی کنیم self.integer را به اینجا اضافه کنیم تا
128
00:04:41,680 –> 00:04:42,960
بتوانیم بفهمیم
129
00:04:42,960 –> 00:04:44,880
که من در مورد کدام عدد صحیح سفارشی صحبت می کنم،
130
00:04:44,880 –> 00:04:46,240
بنابراین اکنون
131
00:04:46,240 –> 00:04:48,560
اگر می خواهم برنامه ag را اجرا کنم
132
00:04:48,560 –> 00:04:51,280
در این صورت، نتیجه این نخواهد بود،
133
00:04:51,280 –> 00:04:54,840
علاوه بر اینکه ما عملکرد خودمان را اعمال می کنیم،
134
00:04:54,840 –> 00:04:56,000
135
00:04:56,000 –> 00:04:59,520
چه اتفاقی می افتد زمانی که اشیاء خود را به رشته تبدیل می کنیم،
136
00:04:59,520 –> 00:05:02,479
بنابراین اگر من آن
137
00:05:02,479 –> 00:05:03,199
برنامه را اجرا
138
00:05:03,199 –> 00:05:05,520
می کنم، اکنون می توانید نتیجه عدد صحیح سفارشی شده
139
00:05:05,520 –> 00:05:06,479
140
00:05:06,479 –> 00:05:09,520
4 را ببینید، در واقع مهم نیست. اگر بخواهیم
141
00:05:09,520 –> 00:05:10,000
142
00:05:10,000 –> 00:05:12,880
این را به رشته تبدیل کنیم، پس منطقی است
143
00:05:12,880 –> 00:05:14,960
که آن را از اینجا حذف کنیم، زیرا به
144
00:05:14,960 –> 00:05:15,919
طور پیش فرض
145
00:05:15,919 –> 00:05:19,280
تابع داخلی چاپ
146
00:05:19,280 –> 00:05:22,000
سعی می کند به هر حال شیئی را که
147
00:05:22,000 –> 00:05:22,880
148
00:05:22,880 –> 00:05:26,000
در رشته چاپ می کنید نشان دهد، بنابراین اگر دوباره این را چاپ کنم
149
00:05:26,000 –> 00:05:28,720
مانند که پس از آن ما همان نتیجه را دریافت خواهیم کرد،
150
00:05:28,720 –> 00:05:30,560
بنابراین اشکالی
151
00:05:30,560 –> 00:05:32,960
ندارد که آن را به همین شکل رها کنیم، بنابراین اکنون که
152
00:05:32,960 –> 00:05:33,680
متوجه
153
00:05:33,680 –> 00:05:36,639
شدیم dunder str چگونه کار می کند و چگونه می تواند
154
00:05:36,639 –> 00:05:37,600
به شما کمک کند تا
155
00:05:37,600 –> 00:05:40,320
کلاس های بهتری بنویسید، اجازه دهید در
156
00:05:40,320 –> 00:05:41,360
واقع این را
157
00:05:41,360 –> 00:05:44,400
به epr خود در کنار str تغییر دهیم تا من این کار را انجام دهم.
158
00:05:44,400 –> 00:05:46,560
اساساً اینجا repr را بنویسید
159
00:05:46,560 –> 00:05:49,680
و اکنون برنامه ما را اجرا کنید، نتیجه
160
00:05:49,680 –> 00:05:50,800
ای که قرار است
161
00:05:50,800 –> 00:05:53,520
دریافت کنیم ممکن است شما را شگفت زده کند زیرا اگر
162
00:05:53,520 –> 00:05:55,680
من آن برنامه را اجرا می کنم،
163
00:05:55,680 –> 00:05:58,240
ما هنوز همان
164
00:05:58,240 –> 00:05:59,199
نتیجه را دریافت
165
00:05:59,199 –> 00:06:02,160
می کنیم که ممکن است انتظار داشته باشیم که ببینیم.
166
00:06:02,160 –> 00:06:03,440
نتیجه ای که
167
00:06:03,440 –> 00:06:05,759
ما تعداد زیادی اعداد و
168
00:06:05,759 –> 00:06:07,680
اساساً کاراکترهای زیادی را دیدیم که
169
00:06:07,680 –> 00:06:08,639
به
170
00:06:08,639 –> 00:06:11,759
آن شی خاص اشاره می کنند، اما نتیجه
171
00:06:11,759 –> 00:06:15,280
هنوز برای آن عدد صحیح سفارشی شده است، بنابراین
172
00:06:15,280 –> 00:06:18,000
حتی اگر ما str دانلود خود را تغییر
173
00:06:18,000 –> 00:06:19,360
174
00:06:19,360 –> 00:06:23,280
ندادیم، همچنان می بینیم که dunder r epr چیست.
175
00:06:23,280 –> 00:06:26,400
سعی میکند برگرداند، بنابراین سوال
176
00:06:26,400 –> 00:06:29,280
اینجاست که چرا ما آن را میبینیم و دلیل
177
00:06:29,280 –> 00:06:29,680
آن این
178
00:06:29,680 –> 00:06:32,720
است که تابع چاپ داخلی
179
00:06:32,720 –> 00:06:35,919
به دنبال راهی زیبا میگردد تا
180
00:06:35,919 –> 00:06:38,000
شیئی را که میخواهید برای
181
00:06:38,000 –> 00:06:38,960
خود چاپ کنید به شما نشان دهد،
182
00:06:38,960 –> 00:06:42,160
بنابراین سعی میکند آن را جستجو کند. ابتدا dunder str
183
00:06:42,160 –> 00:06:44,080
و سعی می کند ببیند
184
00:06:44,080 –> 00:06:46,400
چه مقداری در آنجا برگردانده شده است و
185
00:06:46,400 –> 00:06:48,000
چیزی در آنجا پیدا نکرد زیرا
186
00:06:48,000 –> 00:06:51,039
ما dunder str را تعریف نکردیم
187
00:06:51,039 –> 00:06:53,599
و بنابراین رفت تا بررسی کند که آیا
188
00:06:53,599 –> 00:06:54,720
چیز
189
00:06:54,720 –> 00:06:57,680
دیگری در under epr ما در آن
190
00:06:57,680 –> 00:06:58,720
سفارشی شده وجود دارد یا خیر.
191
00:06:58,720 –> 00:07:02,960
class و repr را در اینجا پیدا کرد،
192
00:07:02,960 –> 00:07:06,000
بنابراین به همین دلیل است که وقتی
193
00:07:06,000 –> 00:07:07,440
ما سعی کردیم این شی را چاپ کنیم، نتیجه این بود،
194
00:07:07,440 –> 00:07:10,560
ب