در این مطلب، ویدئو کلاسهای سادهتر: کلاسهای پایتون بدون همه چیز با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,450 –> 00:00:03,510
صحبت من تقریباً به زمان نزدیک است، بنابراین
2
00:00:03,510 –> 00:00:06,000
فکر می کنم احتمالاً باید شروع
3
00:00:06,000 –> 00:00:10,380
کنیم تا دچار مشکل نشویم، بنابراین من
4
00:00:10,380 –> 00:00:12,389
واقعاً در صحبتم هشداری برای این موضوع ندارم، اما
5
00:00:12,389 –> 00:00:13,980
تازه متوجه شدم که احتمالاً باید ذکر
6
00:00:13,980 –> 00:00:17,100
کنم زیرا فراموش کرده ام که شما یک مبتدی
7
00:00:17,100 –> 00:00:18,960
در برنامه نویسی یا مبتدی پایتون هستید،
8
00:00:18,960 –> 00:00:21,660
این یک گردباد از بحثی است
9
00:00:21,660 –> 00:00:23,310
که احتمالاً قرار است با آن مبارزه کنید،
10
00:00:23,310 –> 00:00:24,990
زیرا برنامه نویسی شی گرا
11
00:00:24,990 –> 00:00:26,699
به طور کلی مشکل است و من فقط به نوعی در حال
12
00:00:26,699 –> 00:00:28,830
غواصی در برخی از موارد بسیار پیشرفته هستم.
13
00:00:28,830 –> 00:00:31,650
چیزهای کلاسی، بنابراین امیدوارم
14
00:00:31,650 –> 00:00:34,800
اگر این کار را نکردید،
15
00:00:34,800 –> 00:00:36,600
اگر به هر ترتیبی این کار را انجام دهید، چیزی از آن به دست آورید، لطفاً بعداً به من بازخورد بدهید،
16
00:00:36,600 –> 00:00:38,340
زیرا میخواهم بدانم
17
00:00:38,340 –> 00:00:39,719
این سخنرانی برای شما و
18
00:00:39,719 –> 00:00:41,760
تجربه شما مرتبط است، بنابراین قبل از شروع کار
19
00:00:41,760 –> 00:00:44,010
من می خواهم به سرعت خودم را معرفی کنم، بنابراین
20
00:00:44,010 –> 00:00:46,379
نام من tre است و به
21
00:00:46,379 –> 00:00:48,510
تیم های Python و Django در هیئت تیم های جدید کمک می کنم
22
00:00:48,510 –> 00:00:50,129
و توسعه دهندگان front-end آنها را به توسعه دهندگان
23
00:00:50,129 –> 00:00:52,410
فول استک و جنگو تبدیل می کنم. همچنین
24
00:00:52,410 –> 00:00:54,360
بسیاری از اصول اصلی پایتون را
25
00:00:54,360 –> 00:00:56,520
برای غیر جنگو آموزش می دهم. نوجوانان
26
00:00:56,520 –> 00:00:59,489
من تمرین پایتون را اجرا می کنم
27
00:00:59,489 –> 00:01:02,309
سرویس اشتراک cise از ژانویه امسال، جایی که
28
00:01:02,309 –> 00:01:05,280
من هر هفته یک تمرین پایتون ارسال میکنم
29
00:01:05,280 –> 00:01:07,320
تا به مردم کمک کنم مهارتهای پایتون خود را بهبود بخشند،
30
00:01:07,320 –> 00:01:10,409
این از
31
00:01:10,409 –> 00:01:12,960
غیر مبتدی تا حتی
32
00:01:12,960 –> 00:01:15,030
33
00:01:15,030 –> 00:01:18,630
غیر مبتدیتر است. برای صحبت
34
00:01:18,630 –> 00:01:23,490
در مورد کلاس ها می خواهم در مورد
35
00:01:23,490 –> 00:01:25,080
ساخت کلاس هایی صحبت کنم که استفاده از آنها برای توسعه دهندگان آسان تر
36
00:01:25,080 –> 00:01:28,080
37
00:01:28,080 –> 00:01:30,270
38
00:01:30,270 –> 00:01:33,119
39
00:01:33,119 –> 00:01:36,270
40
00:01:36,270 –> 00:01:37,920
باشد. در یک زمان، بنابراین
41
00:01:37,920 –> 00:01:39,630
من قصد دارم به جای این کلاسهای دوستانه را
42
00:01:39,630 –> 00:01:43,590
کلاسهای دوستانه بنامم، کلاسهای دوستانه
43
00:01:43,590 –> 00:01:47,549
برای توسعهدهندگانی هستند که از آنها در
44
00:01:47,549 –> 00:01:50,070
کلاسها استفاده میکنند، نمایش رشتهای خوبی
45
00:01:50,070 –> 00:01:53,130
دارند و میتوان آنها را با
46
00:01:53,130 –> 00:01:55,740
نمونههای دیگر آن
47
00:01:55,740 –> 00:01:58,469
کلاس به روشهای منطقی و منطقی با یکدیگر مقایسه کرد.
48
00:01:58,469 –> 00:02:01,829
هر زمان که منطقی باشد،
49
00:02:01,829 –> 00:02:03,810
اپراتورها را بیش از حد بارگذاری میکنند تا خود را یک
50
00:02:03,810 –> 00:02:06,960
هشپذیر دوگانه تکرار کنند یا انواع دیگری
51
00:02:06,960 –> 00:02:09,449
از عملیات که ممکن است منطقی باشد.
52
00:02:09,449 –> 00:02:12,390
آن کلاسها در پایتون، بنابراین ما
53
00:02:12,390 –> 00:02:13,920
میخواهیم به دو مثال در اینجا نگاهی بیندازیم،
54
00:02:13,920 –> 00:02:16,590
اولین مثال از یک کلاس دوستانه، کلاس یک
55
00:02:16,590 –> 00:02:18,870
ماه است، در اینجا این
56
00:02:18,870 –> 00:02:21,989
نمونههای ساختگی هستند، اما اگر
57
00:02:21,989 –> 00:02:23,970
کلاسی در پایتون میخواهید که
58
00:02:23,970 –> 00:02:27,030
ویژگیهای شما را بپذیرد، نمونههایی هستند. قرار است
59
00:02:27,030 –> 00:02:29,310
به یک مقداردهی اولیه نیاز داشته باشید، میتوانید آن را
60
00:02:29,310 –> 00:02:31,860
با dunder init بسازید، اگر میخواهید یک
61
00:02:31,860 –> 00:02:33,600
نمایش رشته مفید داشته
62
00:02:33,600 –> 00:02:36,150
باشید، به روش dunder wrapper نیاز خواهید داشت
63
00:02:36,150 –> 00:02:37,650
که مخفف آن عبارت است از
64
00:02:37,650 –> 00:02:39,720
روشهای underscore double underscore،
65
00:02:39,720 –> 00:02:41,730
روشهای خاصی هستند که قرارداد را ارائه میکنند.
66
00:02:41,730 –> 00:02:43,380
بین شما و پایتون برای ایجاد برخی
67
00:02:43,380 –> 00:02:45,150
عملکردها، اگر شما آنها را ندیده باشید، ما تعداد زیادی از آنها را خواهیم دید،
68
00:02:45,150 –> 00:02:46,290
69
00:02:46,290 –> 00:02:49,709
اگر میخواهید
70
00:02:49,709 –> 00:02:52,440
کلاس شما با کلاسهای دیگر با استفاده از برابری و نابرابری قابل مقایسه باشد، باید بعداً آنها را جستجو کنید.
71
00:02:52,440 –> 00:02:56,340
72
00:02:56,340 –> 00:02:59,280
شما باید dunder equ
73
00:02:59,280 –> 00:03:01,769
dunder uqs را برای برابری پیاده سازی کنید اگر در
74
00:03:01,769 –> 00:03:04,590
پایتون 3 هستید، dunder NE را به
75
00:03:04,590 –> 00:03:06,600
صورت رایگان در پایتون برابر نمی کنید – باید
76
00:03:06,600 –> 00:03:08,160
هر دو مورد را پیاده سازی کنید، این یک بحث پایتون 3
77
00:03:08,160 –> 00:03:10,080
است. من می خواهم
78
00:03:10,080 –> 00:03:13,850
آن یکی را کنار بگذارم، ما فقط dunder Eq را انجام می دهیم
79
00:03:14,120 –> 00:03:18,030
اگر می خواهید در اینجا بیشتر بروید و
80
00:03:18,030 –> 00:03:20,430
می خواهید کلاس خود را مرتب یا مرتب
81
00:03:20,430 –> 00:03:23,400
کنید، باید
82
00:03:23,400 –> 00:03:25,950
عملگر کمتر از dunder LT را با استفاده از dunder LT
83
00:03:25,950 –> 00:03:27,989
بزرگتر پیاده سازی کنید. اپراتور با استفاده از dunder
84
00:03:27,989 –> 00:03:30,150
DT کمتر یا مساوی عملگر با استفاده از
85
00:03:30,150 –> 00:03:32,010
dunder le و بزرگتر از مساوی
86
00:03:32,010 –> 00:03:34,769
عملگر با استفاده از dunder GE ما به تازگی
87
00:03:34,769 –> 00:03:36,359
این کلاس را بالون کرده ایم، اکنون روش های زیادی
88
00:03:36,359 –> 00:03:38,160
برای هر یک از این مقایسه های جداگانه داریم،
89
00:03:38,160 –> 00:03:41,070
بنابراین پس از همه اینها ما
90
00:03:41,070 –> 00:03:42,959
حتی هیچ کدی ننوشتهایم که کلاس ما در
91
00:03:42,959 –> 00:03:45,120
حال حاضر بسیار سنگین به نظر میرسد، اگر
92
00:03:45,120 –> 00:03:47,850
کد این کلاس را پیادهسازی کنیم
93
00:03:47,850 –> 00:03:50,299
، چیزی شبیه به این خواهد بود،
94
00:03:50,299 –> 00:03:52,769
بنابراین ممکن است متوجه شوید که در اینجا کدهای تکراری زیادی وجود دارد،
95
00:03:52,769 –> 00:03:55,410
هر
96
00:03:55,410 –> 00:03:59,700
پنج روش مقایسه کننده dunder
97
00:03:59,700 –> 00:04:02,430
تقریباً بسیار زیاد هستند. همان روشی که
98
00:04:02,430 –> 00:04:04,440
کدهای بسیار مشابهی دارند، تنها
99
00:04:04,440 –> 00:04:05,880
تفاوت واقعی در هر یک از اینها،
100
00:04:05,880 –> 00:04:09,269
عملگری است که هر یک از آنها استفاده می کنند،
101
00:04:09,269 –> 00:04:11,519
اکنون یک کمکی در کتابخانه استاندارد پایتون وجود
102
00:04:11,519 –> 00:04:13,440
دارد که می تواند این را کمی کوتاه کند.
103
00:04:13,440 –> 00:04:16,950
به آن سفارش کلی می
104
00:04:16,950 –> 00:04:19,560
گویند و در ماژول ابزارهای تابعی زندگی می کند.
105
00:04:19,560 –> 00:04:21,570
سفارش کامل به ما امکان می دهد فقط دو
106
00:04:21,570 –> 00:04:23,039
تا از این عملگرهای مقایسه
107
00:04:23,039 –> 00:04:24,419
را پیاده سازی کنیم و بقیه را به صورت خودکار برای ما پیاده سازی می کند،
108
00:04:24,419 –> 00:04:26,310
بنابراین در اینجا ما
109
00:04:26,310 –> 00:04:27,810
دوندر Eq
110
00:04:27,810 –> 00:04:29,700
و dunder LT را انتخاب کرده ایم و به نوعی به
111
00:04:29,700 –> 00:04:31,650
طور خودکار سایر موارد را
112
00:04:31,650 –> 00:04:34,950
از آنهایی که اکنون ما هنوز
113
00:04:34,950 –> 00:04:37,800
کدهای دیگ بخار زیادی داریم در اینجا مشخص می کند، این کلاس در
114
00:04:37,800 –> 00:04:39,720
واقع عمدتاً کد دیگ بخار است، اما
115
00:04:39,720 –> 00:04:42,210
به ما کمک کرد تا اجرای این کلاس را کوتاه
116
00:04:42,210 –> 00:04:45,720
کنیم، بنابراین ما می خواهیم به یک کد
117
00:04:45,720 –> 00:04:47,610
حتی بهتر نگاه کنیم. روشی برای انجام این کار
118
00:04:47,610 –> 00:04:49,500
بعداً من از آن می گذرم
119
00:04:49,500 –> 00:04:51,330
و آن را تا انتها رها می کنم، ابتدا
120
00:04:51,330 –> 00:04:54,900
مثال دیگری را بررسی می کنیم، بنابراین
121
00:04:54,900 –> 00:04:57,480
این مثال کلاسی است که
122
00:04:57,480 –> 00:05:00,660
یک نقطه سه بعدی را نشان می دهد، بنابراین مختصات XY و z
123
00:05:00,660 –> 00:05:03,389
دقیقاً مانند موارد زیر است. مثال آخر
124
00:05:03,389 –> 00:05:05,639
ما، کلاسی را می خواهیم که آرگومان ها را بپذیرد،
125
00:05:05,639 –> 00:05:07,710
دارای نمایش رشته ای دوستانه باشد
126
00:05:07,710 –> 00:05:10,590
و به ما امکان می دهد
127
00:05:10,590 –> 00:05:15,780
آن را با سایر نقاط مقایسه کنیم، اگر
128
00:05:15,780 –> 00:05:19,950
می خواهیم کلاس ما نیز به
129
00:05:19,950 –> 00:05:21,479
سه مختصات باز شود. ng
130
00:05:21,479 –> 00:05:24,060
تکالیف چندگانه پس گفتن XY و z برابر
131
00:05:24,060 –> 00:05:26,160
با نقطه ما هستند و ما میتوانیم آن
132
00:05:26,160 –> 00:05:28,680
مختصات را به طور خودکار باز کنیم، بنابراین
133
00:05:28,680 –> 00:05:31,590
معنای باز کردن این مختصات این
134
00:05:31,590 –> 00:05:35,430
است که ما واقعاً
135
00:05:35,430 –> 00:05:39,660
میپرسیم اگر از تکالیف چندگانه پشتیبانی میکنیم کلاس ما تکرارپذیر است یا خیر.
136
00:05:39,660 –> 00:05:41,400
137
00:05:41,400 –> 00:05:42,990
فاصله کلاسی خود را بسازیم،
138
00:05:42,990 –> 00:05:45,630
برای انجام این کار، باید تحت روش موقت اضافه کنیم تا
139
00:05:45,630 –> 00:05:48,240
این کار کمی پیشرفته است، اکنون می
140
00:05:48,240 –> 00:05:51,030
خواهم در مورد تکرارپذیری صحبت کنم قبل از اینکه
141
00:05:51,030 –> 00:05:52,979
صحبت های زیادی در مورد این وجود داشته باشد، اما
142
00:05:52,979 –> 00:05:54,720
تکالیف چندگانه به
143
00:05:54,720 –> 00:05:57,240
دوام بستگی دارد، بنابراین ما به یک روش dunder itter
144
00:05:57,240 –> 00:06:00,780
برای این مورد، اکنون در این مورد خاص،
145
00:06:00,780 –> 00:06:04,200
ممکن است تصمیم بگیرید که کلاس خود را
146
00:06:04,200 –> 00:06:07,350
تغییرناپذیر کنید، به این معنا که شما نمیتوانید
147
00:06:07,350 –> 00:06:09,630
پس از ایجاد ویژگیها، آنها را نادیده بگیرید
148
00:06:09,630 –> 00:06:11,820
149
00:06:11,820 –> 00:06:14,280
150
00:06:14,280 –> 00:06:16,440
. اگر بخواهیم
151
00:06:16,440 –> 00:06:19,229
بتوانیم پس از ایجاد یک
152
00:06:19,229 –> 00:06:22,080
شی نقطه جدید به ویژگی های خود اختصاص دهیم، باید یک
153
00:06:22,080 –> 00:06:24,900
متد جمع کننده مجموعه سفارشی در زیر مجموعه جمع کننده ایجاد کنیم،
154
00:06:24,900 –> 00:06:27,660
اکنون این روش حتی از ما پیشرفته تر است.
155
00:06:27,660 –> 00:06:31,680
diretor در اینجا انجام شده است، اما کار می کند، بنابراین اگر
156
00:06:31,680 –> 00:06:33,750
کلاس ما تغییرناپذیر است، اگر تا به حال سعی کرده اید از یک لیوان در مجموعه یا کلیدها در فرهنگ لغت
157
00:06:33,750 –> 00:06:38,520
استفاده کنید، باید از کلاس ما در یک مجموعه یا به عنوان
158
00:06:38,520 –> 00:06:40,530
کلید در فرهنگ لغت نیز
159
00:06:40,530 –> 00:06:41,610
استفاده
160
00:06:41,610 –> 00:06:44,370
161
00:06:44,370 –> 00:06:46,919
کنید. ممکن است متوجه شود که همیشه کار نمیکند، برای اینکه
162
00:06:46,919 –> 00:06:47,490
کار کند،
163
00:06:47,490 –> 00:06:49,969
باید هش کنید،
164
00:06:49,969 –> 00:06:52,680
اکنون همه اینها عالی است، کلاس ما را
165
00:06:52,680 –> 00:06:54,180
برای کسی که از آن استفاده میکند دوستانه میکند،
166
00:06:54,180 –> 00:06:56,520
اما برای ما توسعهدهنده شخصی
167
00:06:56,520 –> 00:06:58,439
که این کلاس خاص را ساخته است، این
168
00:06:58,439 –> 00:07:02,400
مقدار زیاد است. پس از تمام این کارها،
169
00:07:02,400 –> 00:07:03,960
کلاس ما در نهایت
170
00:07:03,960 –> 00:07:08,009
چیزی شبیه به این خواهد شد، بنابراین این کلاس
171
00:07:08,009 –> 00:07:09,659
واقعاً با خطوط بسیار کمی
172
00:07:09,659 –> 00:07:10,979
کد
173
00:07:10,979 –> 00:07:14,099
کمی انجام می دهد، برخی از اینها احتمالاً برای شما جدید است، من
174
00:07:14,099 –> 00:07:15,840
تقریباً مطمئن هستم که برای اکثر موارد شما در
175
00:07:15,840 –> 00:07:17,129
این اتاق، برخی از این موارد در اینجا جدید هستند،
176
00:07:17,129 –> 00:07:18,779
به عنوان مثال اگر قبلا
177
00:07:18,779 –> 00:07:21,479
بازدهی را ندیدهاید، میتوانید مولدها و تکرارکنندههای Google را مشاهده کنید
178
00:07:21,479 –> 00:07:23,550
، این یک مولد است که
179
00:07:23,550 –> 00:07:24,750
ما در آنجا میسازیم، میتوانید Google چگونه
180
00:07:24,750 –> 00:07:27,180
از آنها به تنهایی استفاده کنید، این اساساً
181
00:07:27,180 –> 00:07:29,879
کد است. کپی پیست کنید من اینجا هستم اگر به کلاس نیاز دارید
182
00:07:29,879 –> 00:07:31,680
مثل این کپی پیست کنید این کلاس
183
00:07:31,680 –> 00:07:34,680
را شروع کرده اید به جای اینکه
184
00:07:34,680 –> 00:07:36,569
همه اینها را به خاطر بسپارید، ما فقط می توانیم
185
00:07:36,569 –> 00:07:39,750
این کلاس را کپی پیست کرده و
186
00:07:39,750 –> 00:07:44,550
هر زمان که به آن نیاز داشتیم آن را دوباره قالب بندی کنیم، در حالی که بسیاری از این
187
00:07:44,550 –> 00:07:46,979
موارد احتمالا برای شما جدید هستند، این
188
00:07:46,979 –> 00:07:49,169
کد بسیار مختصر است. خیلی کوتاه است
189
00:07:49,169 –> 00:07:51,150
حتی اگر کاملاً آن را درک
190
00:07:51,150 –> 00:07:52,589
نکنید، حداقل فضای زیادی را اشغال نمی کند،
191
00:07:52,589 –> 00:07:54,089
192
00:07:54,089 –> 00:07:55,319
ما مجبور نیستیم همه آن را هر بار تایپ کنیم،
193
00:07:55,319 –> 00:07:57,240
اگرچه این چیزی است که
194
00:07:57,240 –> 00:07:58,740
شما نباید کپی/پیست کنید شما
195
00:07:58,740 –> 00:08:00,000
نباید تایپ کنید این
196
00:08:00,000 –> 00:08:02,099
کد دیگ بخار است، این کدی است
197
00:08:02,099 –> 00:08:04,169
که نیازی به وجود ندارد، باید فقط
198
00:08:04,169 –> 00:08:07,469
کار کند، خوشبختانه ابزاری وجود دارد که
199
00:08:07,469 –> 00:08:10,770
در کتابخانه استاندارد پایتون وجود دارد، نه
200
00:08:10,770 –> 00:08:12,599
ابزارهای فانک ما برای سفارش دادن، بلکه
201
00:08:12,599 –> 00:08:14,550
ابزار دیگری است که همه این کارها را برای
202
00:08:14,550 –> 00:08:17,819
ما انجام دهید، به نام تاپل نامیده می شود، این هم در
203
00:08:17,819 –> 00:08:20,699
پایتون 2 و هم در پایتون 3 وجود دارد، تابع نام
204
00:08:20,699 –> 00:08:22,409
تاپل که در مجموعه ها زندگی می کند
205
00:08:22,409 –> 00:08:26,039
نام ماژول tuple یک
206
00:08:26,039 –> 00:08:28,129
کلاس نیست، یک تابع است، اما یک کلاس
207
00:08:28,129 –> 00:08:30,990
Factory است. این زمانی است که شما
208
00:08:30,990 –> 00:08:33,419
با نام تاپل یو تماس می گیرید شما
209
00:08:33,419 –> 00:08:35,309
نام کلاسی را که دوست دارید
210
00:08:35,309 –> 00:08:37,828
به طور جادویی برای شما ایجاد کند و
211
00:08:37,828 –> 00:08:39,690
ویژگی هایی که آن کلاس باید
212
00:08:39,690 –> 00:08:42,149
روی آن داشته باشد به آن منتقل می کنید و به صورت پویا یک
213
00:08:42,149 –> 00:08:44,880
کلاس جدید برای شما ایجاد می کند نه یک نمونه کلاس
214
00:08:44,880 –> 00:08:47,160
نه یک شی کلاس برای کل کلاس
215
00:08:47,160 –> 00:08:51,480
به خودی خود باعث میشود کلاس
216
00:08:51,480 –> 00:08:52,980
یا کلاسهایی که توسط تاپل نامگذاری شده ایجاد میشوند،
217
00:08:52,980 –> 00:08:55,470
رشتهای دوستانه داشته باشند
218
00:08:55,470 –> 00:08:57,600
مانند آنچه ما در کلاسهای خود به دنبال آن
219
00:08:57,600 –> 00:08:59,610
هستیم، آنها همچنین میتوانند
220
00:08:59,610 –> 00:09:01,110
با استفاده از برابری و نابرابری با یکدیگر مقایسه شوند
221
00:09:01,110 –> 00:09:03,350
و آنها تغییر ناپذیر هستند
222
00:09:03,350 –> 00:09:06,060
به این معنی که ما نمی توانیم ویژگی های
223
00:09:06,060 –> 00:09:07,410
آنها را پس از ایجاد آنها تغییر دهیم، این چیزی است
224
00:09:07,410 –> 00:09:08,730
که ما به صورت رایگان دریافت می کنیم، شما نمی توانید آن را
225
00:09:08,730 –> 00:09:10,080
تغییر دهید، بنابراین اگر آن را نمی خواهید،
226
00:09:10,080 –> 00:09:12,030
به آن چسبیده اید و آنها قابل
227
00:09:12,030 –> 00:09:14,010
هش هستند. به این معنی که میتوانید از آنها در
228
00:09:14,010 –> 00:09:15,750
مجموعهها استفاده کنید، میتوانید از آنها بهعنوان کلید در
229
00:09:15,750 –> 00:09:17,940
فرهنگ لغت استفاده کنید، بنابراین تاپل
230
00:09:17,940 –> 00:09:19,440
تقریباً همه چیزهایی را
231
00:09:19,440 –> 00:09:21,090
که در کلاس نقطهای که در اینجا به دنبال آن بودیم،
232
00:09:21,090 –> 00:09:23,280
نه کلاس ماه، بلکه در کلاس نقطهمان به
233
00:09:23,280 –> 00:09:26,940
ما میدهد. روشی که تاپل نامگذاری شده
234
00:09:26,940 –> 00:09:28,410
کار می کند اگرچه m ight کمی نامفهوم به نظر می رسد
235
00:09:28,410 –> 00:09:30,180
، این تابعی است که به
236
00:09:30,180 –> 00:09:31,860
ما یک کلاس برمی گرداند که چیزی نیست
237
00:09:31,860 –> 00:09:35,250
که معمولاً در پایتون در پایتون 3.5 می بینید،
238
00:09:35,250 –> 00:09:37,650
راه بهتری برای استفاده از
239
00:09:37,650 –> 00:09:40,830
تاپل نام دار به جای استفاده از مجموعه هایی با
240
00:09:40,830 –> 00:09:43,920
نام tuple وجود دارد که اکنون می توانید از
241
00:09:43,920 –> 00:09:46,920
تایپ نقطه به ارث ببرید. name tuple تایپ کردن نام
242
00:09:46,920 –> 00:09:49,620
تاپل کلاسی است که تقریباً
243
00:09:49,620 –> 00:09:50,430
همین کار را انجام میدهد،
244
00:09:50,430 –> 00:09:52,620
بنابراین در حالی که مجموعههایی با نام
245
00:09:52,620 –> 00:09:55,760
tuple تابعی است که یک کلاس برای شما ایجاد میکند.
246
00:09:55,760 –> 00:09:58,170
247
00:09:58,170 –> 00:10:01,140
248
00:10:01,140 –> 00:10:03,090
به نظر می رسد یک کلاس است که
249
00:10:03,090 –> 00:10:06,480
به شما یک کلاس پس
250
00:10:06,480 –> 00:10:08,190
می دهد.
251
00:10:08,190 –> 00:10:09,600
252
00:10:09,600 –> 00:10:11,160
253
00:10:11,160 –> 00:10:13,230
254
00:10:13,230 –> 00:10:15,900
255
00:10:15,900 –> 00:10:18,060
ویژگیهای XY و Z را نشان میدهد، بنابراین اگر
256
00:10:18,060 –> 00:10:19,650
آنها را ندیدهاید،
257
00:10:19,650 –> 00:10:23,130
یکی از ویژگیهای اختصاصی پایتون 3 است که از آن کولون برای
258
00:10:23,130 –> 00:10:24,590
اشاره به نوع این چیزها استفاده میکند،
259
00:10:24,590 –> 00:10:27,090
همچنین یکی از مواردی است که با مجموعه دریافت نمیکنید.
260
00:10:27,090 –> 00:10:30,150
یونها نام تاپل این است که میتوانید
261
00:10:30,150 –> 00:10:32,670
مقادیر پیشفرض را تنظیم کنید، بنابراین
262
00:10:32,670 –> 00:10:34,380
اگر نامشخص هستند، میتوانیم همه اینها را بهطور پیشفرض به 0 اختصاص دهیم
263
00:10:34,380 –> 00:10:36,720
که
264
00:10:36,720 –> 00:10:38,700
در این مثال خاص واقعاً منطقی نیست،
265
00:10:38,700 –> 00:10:40,140
تنظیم همه آنها روی 0 کمی عجیب است،
266
00:10:40,140 –> 00:10:41,910
اما مفید است. گاهی اوقات برای اینکه
267
00:10:41,910 –> 00:10:45,950
بتوانیم مقادیر پیشفرض را تنظیم کنیم، تاپلهای نام میسازیم،
268
00:10:46,040 –> 00:10:50,580
بنابراین به طور کلی، تاپلهای نام بسیار
269
00:10:50,580 –> 00:10:53,010
عالی هستند تا چیزی شبیه یک
270
00:10:53,010 –> 00:10:54,780
تاپل اما کمی توصیفیتر
271
00:10:54,780 –> 00:10:58,110
که شبیه یک تاپل است، اما حتی بهتر است، دریافت کنیم، اما
272
00:10:58,110 –> 00:10:59,880
اگر از تاپلهای نام استفاده میکنید. برای جایگزینی
273
00:10:59,880 –> 00:11:02,070
کلاسی که لزوماً نیازی به
274
00:11:02,070 –> 00:11:04,770
کار کردن مانند یک تاپل ندارد، ممکن است بخواهید
275
00:11:04,770 –> 00:11:07,830
هنگام استفاده از نام تاپل ها مراقب باشید، می خواهم به
276
00:11:07,830 –> 00:11:09,499
شما نشان دهم
277
00:11:09,499 –> 00:11:13,410
که چرا تاپل ها از تاپل ها
278
00:11:13,410 –> 00:11:16,589
به ارث می برند، به این معنی که آنها تمام ویژگی هایی را به ارث می برند
279
00:11:16,589 –> 00:11:19,739
که تاپل ها دارند، بنابراین می توان آنها را
280
00:11:19,739 –> 00:11:22,170
سفارش داد که لزوماً
281
00:11:22,170 –> 00:11:24,899
برای نظر ما در اینجا منطقی نیست، پرسیدن دو
282
00:11:24,899 –> 00:11:26,519
نکته که آیا یکی کمتر از
283
00:11:26,519 –> 00:11:28,470
دیگری نیست، در این مورد خاص یک جور مزخرف
284
00:11:28,470 –> 00:11:32,309
است، بنابراین این می تواند مفید باشد
285
00:11:32,309 –> 00:11:33,869
که آنها سفارش داده شده باشند اما شما دریافت این
286
00:11:33,869 –> 00:11:35,999
به طور پیش فرض و شما با آن گیر کرده اید، آنها
287
00:11:35,999 –> 00:11:38,850
همچنین می توانند به یکدیگر اضافه شوند، اما
288
00:11:38,850 –> 00:11:40,350
چیزی که وقتی دو
289
00:11:40,350 –> 00:11:42,239
تاپل نامگذاری شده را به هم اضافه می کنید، ممکن است آن چیزی نباشد
290
00:11:42,239 –> 00:11:45,089
که انتظار دارید، این چیزی نیست که ما
291
00:11:45,089 –> 00:11:48,779
به دنبال آن بودیم، پس مراقب باشید. وقتی
292
00:11:48,779 –> 00:11:50,220
از تاپلهای نامگذاری شده استفاده میکنید، زیرا
293
00:11:50,220 –> 00:11:52,499
اگر تاپلهای نام را در یک عدد صحیح ضرب کنید،
294
00:11:52,499 –> 00:11:54,480
این نیز کار میکند، اما باز
295
00:11:54,480 –> 00:11:57,149
هم چیزی کمی غیرمنتظره دریافت میکنید،
296
00:11:57,149 –> 00:11:59,790
بنابراین کمی عجیب است که اکنون تاپلهای نامگذاری شده
297
00:11:59,790 –> 00:12:01,559
دارای طول هستند، اما دوباره این
298
00:12:01,559 –> 00:12:02,970
ویژگی است که
299
00:12:02,970 –> 00:12:05,220
لزوماً برای نکات ما در اینجا معنی ندارد، بنابراین
300
00:12:05,220 –> 00:12:06,929
تاپل های نامگذاری شده جایگزینی عالی برای
301
00:12:06,929 –> 00:12:08,730
تاپل ها هستند، اما آنها فقط
302
00:12:08,730 –> 00:12:10,649
جایگزینی برای تاپل ها هستند، آنها
303
00:12:10,649 –> 00:12:12,929
لزوما برای همه چیز خوب
304
00:12:12,929 –> 00:12:14,819
نیستند، بنابراین مفید هستند، اما در استفاده از آنها مراقب باشید.
305
00:12:14,819 –> 00:12:16,829
اکنون اگر میخواهید این
306
00:12:16,829 –> 00:12:18,989
مشکلات را به صورت دستی برطرف کنید، میتوانید همه این اپراتورهای مختلف را بیش از حد بارگذاری کنید
307
00:12:18,989 –> 00:12:20,519
و یک
308
00:12:20,519 –> 00:12:22,499
استثنای مناسب ایجاد کنید تا مطمئن شوید که
309
00:12:22,499 –> 00:12:26,029
دیگر نمیتوان آنها را اضافه یا ضرب کرد و
310
00:12:26,029 –> 00:12:29,279
همه این موارد را پیدا کرد و
311
00:12:29,279 –> 00:12:31,319
ویژگیها را حذف کرد. مواردی که شما نمی خواهید
312
00:12:31,319 –> 00:12:33,329
اغلب پیچیده تر از افزودن ویژگی هایی است
313
00:12:33,329 –> 00:12:35,480
که می خواهید، بنابراین
314
00:12:35,480 –> 00:12:38,399
اگر ویژگی های تاپل های نامگذاری شده
315
00:12:38,399 –> 00:12:40,019
برای موارد استفاده نامناسب هستند، این را توصیه نمی کنم، احتمالاً
316
00:12:40,019 –> 00:12:43,949
نباید از آنها به عنوان جایگزینی برای
317
00:12:43,949 –> 00:12:47,220
نامگذاری تاپل ها به عنوان بازیگر Adar استفاده کنید. یک
318
00:12:47,220 –> 00:12:49,649
کتابخانه شخص ثالث است که ایجاد کلاسهایی را آسانتر میکند
319
00:12:49,649 –> 00:12:52,259
که ویژگیهای مشترک خاصی دارند،
320
00:12:52,259 –> 00:12:53,669
این واقعاً همان چیزی است که ما
321
00:12:53,669 –> 00:12:55,679
هنگام ایجاد کلاسهای دوستانه به دنبال آن هستیم.
322
00:12:55,679 –> 00:12:58,290
323
00:12:58,290 –> 00:13:00,329
324
00:13:00,329 –> 00:13:02,100
325
00:13:02,100 –> 00:13:04,139
آن را نصب کنید، این یک کتابخانه شخص ثالث است، بنابراین
326
00:13:04,139 –> 00:13:05,669
باید آن را از اینترنت
327
00:13:05,669 –> 00:13:07,919
بگیرید و پس از نصب افزونهها روی دستگاه خود
328
00:13:07,919 –> 00:13:10,319
نصب کنید.
329
00:13:10,319 –> 00:13:13,079
330
00:13:13,079 –> 00:13:15,089
شما اضافه کننده های
331
00:13:15,089 –> 00:13:16,949
نصب پیپ را وارد می کنید، این
332
00:13:16,949 –> 00:13:20,209
من را شخصاً آزار می دهد اما کار می کند و
333
00:13:20,209 –> 00:13:23,200
سپس کلاس خود را با
334
00:13:23,200 –> 00:13:26,860
tt-rs تزئین می کنید که کمی احمقانه است اما
335
00:13:26,860 –> 00:13:32,980
کار می کند بنابراین این دکوراتور attrs ما
336
00:13:32,980 –> 00:13:36,400
در حال عبور خودکار هستیم استدلال ribs
337
00:13:36,400 –> 00:13:37,930
کاری که انجام می دهد این است که به ما امکان می دهد از
338
00:13:37,930 –> 00:13:40,450
پین های کراواتی استفاده کنیم که بسیار زیبا است و به نظر می
339
00:13:40,450 –> 00:13:42,070
رسد مانند تایپ کردن تایپ تایپ
340
00:13:42,070 –> 00:13:45,070
که ما در آنجا به صورت پیش فرض
341
00:13:45,070 –> 00:13:48,190
کلاس های جمع کننده ایجاد کرده ایم، یک نمایش رشته ای زیبا
342
00:13:48,190 –> 00:13:50,170
درست مانند نام تاپل (name tuple) درست مانند آنچه
343
00:13:50,170 –> 00:13:51,940
ما دنبال می کنیم، به نظر می رسد. برای و می توان آنها را به
344
00:13:51,940 –> 00:13:53,410
طور منطقی با هم مقایسه کرد، به این معنی که می توانیم از یک کیفیت استفاده کنیم
345
00:13:53,410 –> 00:13:55,030
و این چیزها را با یکدیگر مقایسه کنیم،
346
00:13:55,030 –> 00:13:58,480
اما آنها همچنین می توانند مانند تاپل های نامگذاری
347
00:13:58,480 –> 00:14:00,370
شده سفارش داده شوند که دوباره آن چیزی نیست که ما به دنبال آن هستیم،
348
00:14:00,370 –> 00:14:01,510
ما باید بفهمیم
349
00:14:01,510 –> 00:14:02,950
چگونه غیرفعال کنیم. این ویژگی زیرا
350
00:14:02,950 –> 00:14:04,450
منطقی نیست که از این دو
351
00:14:04,450 –> 00:14:06,760
شیء نقطه ای پرسیده شود که آیا شما
352
00:14:06,760 –> 00:14:09,420
از یکدیگر کوچکتر هستید یا بزرگتر، بنابراین
353
00:14:09,420 –> 00:14:12,280
اشیاء نقطه ما را می توان مرتب کرد
354
00:14:12,280 –> 00:14:14,170
که چیز خوبی نیست و آنها هنوز
355
00:14:14,170 –> 00:14:16,450
معنی تکرارپذیری ندارند. ما نمیتوانیم از
356
00:14:16,450 –> 00:14:17,920
تخصیص چندگانه با آنها استفاده کنیم و آنها تغییرناپذیر نیستند،
357
00:14:17,920 –> 00:14:20,650
به این معنی که میتوانیم آنها را تغییر دهیم و
358
00:14:20,650 –> 00:14:22,600
نباید بتوانیم آن متغیر X را
359
00:14:22,600 –> 00:14:24,940
پس از بیان این نکته تنظیم کنیم، بنابراین
360
00:14:24,940 –> 00:14:27,130
اگر میخواهیم کلاس نقطه ما درست
361
00:14:27,130 –> 00:14:28,990
مانند همونی که ما ساختیم
362
00:14:28,990 –> 00:14:33,160
قبلاً میتوانستیم این کار را انجام دهیم، بنابراین کاری که در
363
00:14:33,160 –> 00:14:35,770
اینجا انجام دادهایم این است که از attrs استفاده میکنیم، اما ثابت کردهایم که
364
00:14:35,770 –> 00:14:38,530
روی true قرار میدهیم، در حال ساخت یک
365
00:14:38,530 –> 00:14:40,990
شی منجمد هستیم که به این معنی است که ویژگیهای
366
00:14:40,990 –> 00:14:42,610
ما نمیتوانند پس از ساختن آن اصلاح شوند.
367
00:14:42,610 –> 00:14:44,860
نمی توان به متغیر X اختصاص داد، ما
368
00:14:44,860 –> 00:14:47,680
همچنین یک متد داخلی dunder اضافه کرده ایم تا
369
00:14:47,680 –> 00:14:48,820
اشیاء ما با انتساب چندگانه کار کنند،
370
00:14:48,820 –> 00:14:50,800
اکنون این
371
00:14:50,800 –> 00:14:53,620
همان روش dunder inner است که
372
00:14:53,620 –> 00:14:55,060
قبلاً به صورت دستی پیاده سازی کردیم،
373
00:14:55,060 –> 00:14:56,170
نیازی به درک چگونگی آن نیست. کار می کند شما
374
00:14:56,170 –> 00:14:58,780
فقط می توانید آن را کپی پیست کنید و ما
375
00:14:58,780 –> 00:15:01,060
اپراتورهای مقایسه را غیرفعال کرده ایم ما این کار را انجام دادیم تا
376
00:15:01,060 –> 00:15:02,530
نتوانیم از کمتر و بیشتر از
377
00:15:02,530 –> 00:15:04,750
الان استفاده کنیم زیرا این کار را انجام دادیم باید
378
00:15:04,750 –> 00:15:06,220
تحت EQ پیاده سازی کنیم که
379
00:15:06,220 –> 00:15:08,830
متأسفانه دیگر رایگان دریافت نمی کنیم و ما
380
00:15:08,830 –> 00:15:10,810
اگر تواناییهای هش را میخواهیم باید تحت هش پیادهسازی شود،
381
00:15:10,810 –> 00:15:12,970
بنابراین در حال حاضر
382
00:15:12,970 –> 00:15:15,010
خاموش کردن و
383
00:15:15,010 –> 00:15:16,240
روشن کردن ویژگیها کمی دردسر است و
384
00:15:16,240 –> 00:15:21,430
باید بفهمیم چه چیزی را به صورت دستی دوباره فعال کنیم، اکنون
385
00:15:21,430 –> 00:15:24,040
کتابخانه adders قدرتمندتر از
386
00:15:24,040 –> 00:15:26,650
تاپلهای نام است. اما گاهی اوقات کمی طول می
387
00:15:26,650 –> 00:15:28,390
کشد کمی با آن بازی کنید تا همه چیز
388
00:15:28,390 –> 00:15:30,490
درست شود، همچنین این یک کتابخانه شخص ثالث است،
389
00:15:30,490 –> 00:15:32,260
به این معنی که
390
00:15:32,260 –> 00:15:34,420
اگر به هر دلیلی
391
00:15:34,420 –> 00:15:36,010
نمی توانید مواردی را روی دستگاهی
392
00:15:36,010 –> 00:15:36,820
که در آن
393
00:15:36,820 –> 00:15:40,090
هستید نصب کنید، باید آن را نصب کنید تا از آن استفاده کنید. به نوعی گیر کرده است، بنابراین
394
00:15:40,090 –> 00:15:41,620
اشتباهات پدر مشابهی وجود دارد که در واقع
395
00:15:41,620 –> 00:15:44,560
با پایتون همراه شده است، به نام
396
00:15:44,560 –> 00:15:47,230
کلاس های داده کلاس های داده، اساساً
397
00:15:47,230 –> 00:15:49,600
نسخه ساده شده ای از کتابخانه جمع کننده است
398
00:15:49,600 –> 00:15:50,980
و دقیقاً در کتابخانه استاندارد پایتون ساخته شده است
399
00:15:50,980 —