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