در این مطلب، ویدئو تبدیل رشته در پایتون: زمان استفاده از __repr__ در مقابل __str__ با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,390 –> 00:00:02,530
[موسیقی]
2
00:00:04,450 –> 00:00:07,549
سلام به همه، این کار است و وقت آن است که
3
00:00:07,549 –> 00:00:09,920
یک ویدیوی دیگر از ترفندهای پایتون را تهیه کنیم، بنابراین امروز می
4
00:00:09,920 –> 00:00:12,110
خواهم در مورد اینکه چگونه می توانید
5
00:00:12,110 –> 00:00:16,670
نحوه نمایش یک کلاس پایتون به عنوان یک
6
00:00:16,670 –> 00:00:19,400
رشته و همچنین زمانی که با آن تعامل دارید
7
00:00:19,400 –> 00:00:21,800
یا در یک جلسه مفسر پایتون بازرسی
8
00:00:21,800 –> 00:00:25,789
می کنید، صحبت کنم. بیایید با یک
9
00:00:25,789 –> 00:00:28,250
مثال بسیار ساده در اینجا شروع کنیم، بنابراین من کلاس کارت محبوب خود را دریافت کردهام
10
00:00:28,250 –> 00:00:31,580
و ما فقط
11
00:00:31,580 –> 00:00:35,420
میخواهیم یک شیء ماشین ساده را در اینجا ایجاد کنیم و
12
00:00:35,420 –> 00:00:37,250
چیزی که میبینید این است که وقتی من
13
00:00:37,250 –> 00:00:40,900
این شیء ماشین را چاپ میکنم به این
14
00:00:40,900 –> 00:00:43,580
نتیجه رضایتبخش میرسیم. و
15
00:00:43,580 –> 00:00:45,860
زمانی که من فقط شی را در این
16
00:00:45,860 –> 00:00:48,110
جلسه مفسر بررسی میکنم، همینطور است، بنابراین شما میتوانید اینجا را به
17
00:00:48,110 –> 00:00:49,930
خوبی ببینید، حداقل نام کلاس را به ما میدهد،
18
00:00:49,930 –> 00:00:52,129
19
00:00:52,129 –> 00:00:55,250
اما میدانید که فقط
20
00:00:55,250 –> 00:00:57,979
اگر C را اجرا کنیم، آدرس حافظه را به ما میدهد. پایتون که
21
00:00:57,979 –> 00:01:00,439
میدانید این شناسه را به ما میدهد و به
22
00:01:00,439 –> 00:01:02,299
نوعی غیرشفاف و سخت است که
23
00:01:02,299 –> 00:01:04,159
بفهمیم چه اتفاقی دارد میافتد، بنابراین این
24
00:01:04,159 –> 00:01:06,260
بهتر از هیچ است، اما فوقالعاده
25
00:01:06,260 –> 00:01:09,500
مفید نیست و اکنون یک راهحل رایج وجود دارد
26
00:01:09,500 –> 00:01:12,620
که میبینم برخی افراد
27
00:01:12,620 –> 00:01:15,500
برای امتحان درخواست میکنند. لطفاً مستقیماً شروع به چاپ
28
00:01:15,500 –> 00:01:19,040
ویژگیهای کلاس میکنند و مطمئن هستند که کار میکنند،
29
00:01:19,040 –> 00:01:21,200
میدانید که میتوانید این کار را انجام دهید، بنابراین
30
00:01:21,200 –> 00:01:24,530
ما میتوانیم آن کلاس را از هم جدا کنیم و به نوعی
31
00:01:24,530 –> 00:01:27,470
دسترسی پیدا کنیم و رنگ و
32
00:01:27,470 –> 00:01:30,650
مسافت پیموده شده در اینجا را که کار میکند و سپس
33
00:01:30,650 –> 00:01:32,210
آنچه را که من انجام میدهم، برداریم. مشاهده کنید که برخی افراد انجام می دهند این است که به
34
00:01:32,210 –> 00:01:35,180
نوعی ادامه می دهند و دو روش رشته خود را به درستی انجام می دهند
35
00:01:35,180 –> 00:01:37,610
و سپس این روش
36
00:01:37,610 –> 00:01:40,430
برمی گردد یا شاید مانند چاپ مستقیم یا
37
00:01:40,430 –> 00:01:43,070
برگرداندن رشته ای که در حال
38
00:01:43,070 –> 00:01:46,840
ارائه کلاس هستیم، اما در واقع یک
39
00:01:46,840 –> 00:01:51,530
قرارداد در داخل پایتون وجود دارد که
40
00:01:51,530 –> 00:01:53,060
همه اینها را مدیریت می کند، بنابراین
41
00:01:53,060 –> 00:01:54,650
شما مجبور نیستید راه های خود را بچرخانید، لازم نیست
42
00:01:54,650 –> 00:01:56,420
راه های خود را برای انجام این کار بیابید،
43
00:01:56,420 –> 00:01:58,210
زیرا در واقع قراردادهایی از قبل
44
00:01:58,210 –> 00:02:00,799
در مورد نحوه انجام این کار وجود دارد، بنابراین من می خواهم
45
00:02:00,799 –> 00:02:02,420
به شما توضیح دهم که چگونه این کار را انجام دهید. کار می کند و
46
00:02:02,420 –> 00:02:03,770
اساساً چیزی که امروز می خواهید یاد بگیرید
47
00:02:03,770 –> 00:02:09,110
این است که روش های dunder stir و
48
00:02:09,110 –> 00:02:11,870
dunder wrapper در پایتون چگونه کار
49
00:02:11,870 –> 00:02:13,850
50
00:02:13,850 –> 00:02:16,290
51
00:02:16,290 –> 00:02:18,120
52
00:02:18,120 –> 00:02:21,150
می کنند. یکی در آینده، بنابراین
53
00:02:21,150 –> 00:02:23,010
اگر نمیدانید
54
00:02:23,010 –> 00:02:25,469
چگونه این چیزها درست کار میکند، با ما همراه باشید، بنابراین برای
55
00:02:25,469 –> 00:02:27,390
سهولت در این مورد با یک مثال ساده،
56
00:02:27,390 –> 00:02:29,670
من همان کلاس خودرو را انتخاب کردم و یک
57
00:02:29,670 –> 00:02:33,390
روش هم زدن dunder را در اینجا اضافه کردم، بنابراین روشهای dunder
58
00:02:33,390 –> 00:02:35,430
یا روشهایی که با یک
59
00:02:35,430 –> 00:02:37,230
زیرخط دوتایی شروع میشوند، به نوعی
60
00:02:37,230 –> 00:02:39,480
کوتاه شدهاند و برخی از افراد به
61
00:02:39,480 –> 00:02:41,700
آنها به عنوان روشهای جادویی اشاره میکنند، بسیاری از مردم
62
00:02:41,700 –> 00:02:43,799
آن را دوست ندارند، زیرا
63
00:02:43,799 –> 00:02:46,469
واقعاً به هیچ وجه قرار نیست جادویی
64
00:02:46,469 –> 00:02:48,239
باشند. در حالی که یک
65
00:02:48,239 –> 00:02:51,659
قرارداد پایتون و نوع
66
00:02:51,659 –> 00:02:53,730
dunder یا خط زیر
67
00:02:53,730 –> 00:02:57,930
آنها را به عنوان یک چیز اصلی پایتون نشان میدهد، بنابراین
68
00:02:57,930 –> 00:02:59,970
قرار نیست کلاسها واقعاً
69
00:02:59,970 –> 00:03:01,769
متدهای dunder خود را تعریف کنند
70
00:03:01,769 –> 00:03:04,200
زیرا ممکن
71
00:03:04,200 –> 00:03:05,939
است در آینده با ویژگیهای پایتون تضاد داشته باشند.
72
00:03:05,939 –> 00:03:07,769
حدس میزنم فقط راهی است برای جمع کردن
73
00:03:07,769 –> 00:03:10,500
فضای نام این چیزها کمی یا
74
00:03:10,500 –> 00:03:11,970
شما فقط با یک قرارداد نامگذاری میدانید
75
00:03:11,970 –> 00:03:13,889
که آنها را کمی از هم جدا نگه
76
00:03:13,889 –> 00:03:16,590
میدارید، درست مانند روش dunder init، اما
77
00:03:16,590 –> 00:03:18,510
شما میدانید که در اینجا کاملاً فرعی است.
78
00:03:18,510 –> 00:03:21,030
من این کار را انجام دادم، روش هم زدن dunder را اضافه کردم
79
00:03:21,030 –> 00:03:23,370
و اساساً کاری که در اینجا انجام دادم
80
00:03:23,370 –> 00:03:25,620
هر زمان که آن روش نامیده می شود، فقط
81
00:03:25,620 –> 00:03:27,629
رنگ ماشین را برمی گرداند و به نوعی
82
00:03:27,629 –> 00:03:29,790
به ما می گوید که یک ماشین است، بنابراین شما می دانید که فقط
83
00:03:29,790 –> 00:03:31,949
یک مثال را در اینجا دوباره به شما نشان دهم.
84
00:03:31,949 –> 00:03:36,870
من همان ماشین را میسازم و حالا وقتی
85
00:03:36,870 –> 00:03:41,220
این ماشین را پرینت میکنم، در واقع یک
86
00:03:41,220 –> 00:03:43,049
نتیجه کاملاً متفاوت دریافت میکنم، بنابراین این بار به جای این رشته دیوانه با آدرس شی در،
87
00:03:43,049 –> 00:03:45,750
یک ماشین قرمز رنگ میگیرم که نتیجه
88
00:03:45,750 –> 00:03:48,209
این روش همزن است.
89
00:03:48,209 –> 00:03:50,940
90
00:03:50,940 –> 00:03:53,790
با این حال، زمانی که من فقط این
91
00:03:53,790 –> 00:03:56,579
شی را بررسی می کنم، آدرس حافظه
92
00:03:56,579 –> 00:03:59,549
و نتیجه قبلی را درست دریافت می کنم، بنابراین
93
00:03:59,549 –> 00:04:02,099
بازرسی شیء ماشین همچنان
94
00:04:02,099 –> 00:04:05,489
همان نتیجه را می دهد، اما زمانی که
95
00:04:05,489 –> 00:04:08,760
من شیء ماشین را چاپ کردم، این نتیجه متفاوت را
96
00:04:08,760 –> 00:04:12,060
بر اساس روش هم زدن به روش شما دریافت کردم.
97
00:04:12,060 –> 00:04:15,329
در واقع یک شی را به رشته تبدیل می کند،
98
00:04:15,329 –> 00:04:18,478
اگر می خواهید آن را مجبور
99
00:04:18,478 –> 00:04:21,720
کنید یا این اتفاق بیفتد، فقط
100
00:04:21,720 –> 00:04:24,810
از متد همزن ساخته شده استفاده می کنید و
101
00:04:24,810 –> 00:04:27,570
سپس در داخل کار درست را انجام می دهید
102
00:04:27,570 –> 00:04:29,969
و متد dunder stir را فراخوانی
103
00:04:29,969 –> 00:04:31,469
می کنید. نتیجه درست را به شما
104
00:04:31,469 –> 00:04:34,319
برمیگرداند و اکنون همه این توابع
105
00:04:34,319 –> 00:04:37,319
که با نمایش متن برای
106
00:04:37,319 –> 00:04:39,209
اشیایی مانند تابع چاپی سروکار
107
00:04:39,209 –> 00:04:40,979
دارند که در داخل به درستی انجام میدهند، همان کاری را انجام میدهند که
108
00:04:40,979 –> 00:04:43,589
109
00:04:43,589 –> 00:04:46,229
تابع همزن را برای شما صدا میزنند. و
110
00:04:46,229 –> 00:04:48,689
برای مثال در مورد یک رشته فرمت
111
00:04:48,689 –> 00:04:51,149
هم همینطور است، بنابراین اگر این کار را انجام دهید و این کار
112
00:04:51,149 –> 00:04:53,129
هم زدن را هم صدا می کند و نتیجه را به شما می دهد،
113
00:04:53,129 –> 00:04:55,399
اما نکته کلیدی اینجاست
114
00:04:55,399 –> 00:04:58,409
که طبق قرارداد اگر یک روش همزن اضافه کنید،
115
00:04:58,409 –> 00:05:00,779
این کار انجام می شود.
116
00:05:00,779 –> 00:05:03,839
در کنترل اینکه چگونه شیء شما
117
00:05:03,839 –> 00:05:06,539
با یک رشته نمایش داده می شود یا به عنوان یک
118
00:05:06,539 –> 00:05:09,509
رشته نمایش داده می شود، برای شما بسیار خوب است، بنابراین این روش پیتونیک برای انجام این کار است
119
00:05:09,509 –> 00:05:11,219
که در حال حاضر نوعی جام مقدس است،
120
00:05:11,219 –> 00:05:16,199
هنوز هم آنچه در اینجا می بینید این
121
00:05:16,199 –> 00:05:20,129
بود که وقتی من را بررسی کردم
122
00:05:20,129 –> 00:05:22,439
شیء ماشین در کنسول من هنوز
123
00:05:22,439 –> 00:05:24,769
همان نتیجه را گرفتم، بنابراین به نظر می رسد
124
00:05:24,769 –> 00:05:27,839
راه های مختلفی برای تبدیل اشیاء شما
125
00:05:27,839 –> 00:05:30,629
به رشته وجود دارد و اکنون اولین موردی که
126
00:05:30,629 –> 00:05:32,009
در مورد آن یاد گرفتیم dunder stir نام دارد
127
00:05:32,009 –> 00:05:34,619
و اکنون دومی به نام
128
00:05:34,619 –> 00:05:37,739
dunder wrapper و اجازه دهید صحبت در مورد اینکه
129
00:05:37,739 –> 00:05:39,869
dunder repre چه کاری انجام می دهد و تفاوت آن
130
00:05:39,869 –> 00:05:43,469
با dunder stir برای اینکه بفهمید
131
00:05:43,469 –> 00:05:45,709
اینجا چه خبر است، من این
132
00:05:45,709 –> 00:05:48,689
کلاس را تعریف کردم یا می توانید کلاس ماشین من را دوباره تعریف کنید
133
00:05:48,689 –> 00:05:53,459
و این نسخه جدید از
134
00:05:53,459 –> 00:05:55,169
کلاس ماشین در واقع چه کاری انجام می دهد.
135
00:05:55,169 –> 00:05:58,349
اجرای repper و یک همزن و حالا این
136
00:05:58,349 –> 00:05:59,729
پیاده سازی ها فقط
137
00:05:59,729 –> 00:06:01,499
اجرای ساختگی هستند، آنها به ما می گویند
138
00:06:01,499 –> 00:06:03,569
که پشت صحنه چه خبر است، بنابراین اگر
139
00:06:03,569 –> 00:06:05,459
چیزی به نام wrapper در پشت صحنه صدا می زند، در نتیجه
140
00:06:05,459 –> 00:06:07,619
رپر رپر را برای
141
00:06:07,619 –> 00:06:09,329
ماشین دریافت می کنیم و اگر چیزی صدا می کند
142
00:06:09,329 –> 00:06:11,339
هم بزنید. در نتیجه برای ماشین هم زده نمیشود،
143
00:06:11,339 –> 00:06:14,429
بنابراین اکنون میتوانیم
144
00:06:14,429 –> 00:06:17,099
دوباره از همان مثال عبور کنیم و
145
00:06:17,099 –> 00:06:19,079
ماشین من را پرینت کنیم، میتوانید اینجا را ببینید خوب
146
00:06:19,079 –> 00:06:22,409
به نام تابع هم زدن، ما همچنین میتوانیم
147
00:06:22,409 –> 00:06:24,659
نمونه قالب را دوباره مرور کنیم.
148
00:06:24,659 –> 00:06:26,610
این تابع من را هم زدن نامید و
149
00:06:26,610 –> 00:06:29,039
حالا اگر ماشینم را انجام دهیم و فقط بررسی
150
00:06:29,039 –> 00:06:30,749
کنیم می توانیم ببینیم که در واقع
151
00:06:30,749 –> 00:06:33,569
به آن wrapper برای ماشین گفته می شود و یک
152
00:06:33,569 –> 00:06:37,919
راه دیگر برای اجبار این است که
153
00:06:37,919 –> 00:06:40,499
تابع wrapper داخلی را فراخوانی کنیم و سپس
154
00:06:40,499 –> 00:06:42,539
th at کار درست را انجام می دهد و
155
00:06:42,539 –> 00:06:43,950
156
00:06:43,950 –> 00:06:47,070
اجرای صحیح dunder repper را
157
00:06:47,070 –> 00:06:49,050
برای این کار می نامد، معمولاً فقط می خواهید از
158
00:06:49,050 –> 00:06:53,180
کمک کننده های همزن و wrapper برای این کار استفاده کنید
159
00:06:53,180 –> 00:06:55,590
، البته سؤال بزرگ مشکلی ندارد،
160
00:06:55,590 –> 00:06:58,170
بنابراین اکنون ما این دو را داریم که
161
00:06:58,170 –> 00:06:59,880
واقعاً تفاوت آنها چیست. یا
162
00:06:59,880 –> 00:07:02,850
موارد استفاده متفاوتی وجود دارد که در آن
163
00:07:02,850 –> 00:07:04,230
شما می توانید همه آنها را درست استفاده کنید، بنابراین ما
164
00:07:04,230 –> 00:07:08,010
هم بزنید و ما repper داشته باشیم و هر دو
165
00:07:08,010 –> 00:07:10,050
طبق قراردادی نامیده می شوند، اما شما می دانید
166
00:07:10,050 –> 00:07:11,640
که در واقع چه تفاوتی دارد،
167
00:07:11,640 –> 00:07:13,140
مثلاً چه چیزی نباید همان چیزی را برگرداند
168
00:07:13,140 –> 00:07:14,880
یا چگونه با این موضوع کنار بیاییم