در این مطلب، ویدئو هدف واقعی بیانیه مسابقه پایتون، شاهکار. CST ها با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:58
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,160 –> 00:00:03,360
بیانیه تطبیق پایتون 3.10 یک عبارت
2
00:00:03,360 –> 00:00:05,600
switch case نیست،
3
00:00:05,600 –> 00:00:06,960
این احتمالاً بزرگترین
4
00:00:06,960 –> 00:00:08,880
تصور اشتباه در مورد عبارت match
5
00:00:08,880 –> 00:00:12,160
و در مورد هر ویژگی جدید در پایتون 3.10 است،
6
00:00:12,160 –> 00:00:13,920
بله، پایتون بالاخره کیس سوئیچ خود را پیدا کرد،
7
00:00:13,920 –> 00:00:17,040
در نهایت
8
00:00:20,800 –> 00:00:22,480
میتوانم هدف از بیانیه match این
9
00:00:22,480 –> 00:00:25,199
نیست که
10
00:00:25,199 –> 00:00:27,199
بله، میتوانید از عبارت match
11
00:00:27,199 –> 00:00:28,960
به گونهای استفاده کنید که شبیه به یک کلید سوئیچ به نظر میرسد،
12
00:00:28,960 –> 00:00:31,760
اما آیا واقعا فکر میکنید که
13
00:00:31,760 –> 00:00:33,200
آنها این ویژگی جدید را به
14
00:00:33,200 –> 00:00:35,280
زبان اضافه میکنند تا بتوانید حروف مطابقت را بهجای
15
00:00:35,280 –> 00:00:36,719
حروف مشابه به این شکل بنویسید.
16
00:00:36,719 –> 00:00:38,879
معادل کمتر تورفتگی
17
00:00:38,879 –> 00:00:42,640
و کد کوتاهتر با استفاده از if lf و else
18
00:00:42,640 –> 00:00:44,160
اشتباه نکنید،
19
00:00:44,160 –> 00:00:46,800
ویژگیهای افتضاح زیادی در پایتون وجود دارد، اما به
20
00:00:46,800 –> 00:00:48,960
روشی طولانیتر برای انجام دستور if
21
00:00:48,960 –> 00:00:50,000
یکی از آنها
22
00:00:50,000 –> 00:00:51,920
نیست، اما میتوانید بگویید صبر کنید من یک زبان میدانم.
23
00:00:51,920 –> 00:00:54,000
که دارای دستور switch case است
24
00:00:54,000 –> 00:00:56,160
و در آن زبان اجازه دهید فقط از c استفاده کنیم
25
00:00:56,160 –> 00:00:58,160
به عنوان مثال
26
00:00:58,160 –> 00:00:59,920
استفاده از دستور switch
27
00:00:59,920 –> 00:01:00,879
28
00:01:00,879 –> 00:01:03,280
به جای بررسی یک به یک مقدار عددی موارد، یک مزیت عملکرد واقعی
29
00:01:03,280 –> 00:01:05,600
دارد. از x
30
00:01:05,600 –> 00:01:08,560
یک جهش فوری به بند صحیح را تعیین می کند
31
00:01:08,560 –> 00:01:10,640
در حالی که پایتون می تواند از نظر فنی
32
00:01:10,640 –> 00:01:12,320
این رفتار را در حالت خاصی پیاده سازی کند که
33
00:01:12,320 –> 00:01:14,240
همه موارد ثابت انتگرال زمانی کامپایل هستند
34
00:01:14,240 –> 00:01:16,320
، بعید است که
35
00:01:16,320 –> 00:01:18,000
بهینه سازی عملکردی مانند آن
36
00:01:18,000 –> 00:01:20,640
به زودی به پایتون اضافه شود.
37
00:01:20,640 –> 00:01:22,799
در آینده قابل پیشبینی،
38
00:01:22,799 –> 00:01:25,360
39
00:01:25,360 –> 00:01:27,119
اگر شما واقعاً موارد زیادی داشتید و
40
00:01:27,119 –> 00:01:28,479
نمیخواستید زمان خود را صرف انجام
41
00:01:28,479 –> 00:01:30,159
چکهای if else کنید و میخواهید بتوانید
42
00:01:30,159 –> 00:01:32,159
یک int قرار دهید و بلافاصله بپرید، واقعاً فقط یک سری بررسیهای if else است.
43
00:01:32,159 –> 00:01:34,640
برای کد صحیح، میتوانید
44
00:01:34,640 –> 00:01:36,479
با استفاده از این نوع
45
00:01:36,479 –> 00:01:38,079
الگو، یک تابع برای هر یک از
46
00:01:38,079 –> 00:01:40,560
کدهایی که میخواهید استفاده کنید، انجام دهید، سپس به جای استفاده از تطبیق، از یک
47
00:01:40,560 –> 00:01:42,479
فرهنگ لغت نگاشت هر int به کدی
48
00:01:42,479 –> 00:01:43,920
که میخواهید اجرا
49
00:01:43,920 –> 00:01:45,920
شود، استفاده کنید. یا با استفاده از یک
50
00:01:45,920 –> 00:01:47,920
دسته از چک های if در تابع
51
00:01:47,920 –> 00:01:49,360
خود فقط مقدار مورد نظر خود را در
52
00:01:49,360 –> 00:01:50,799
فرهنگ لغت جستجو کنید که کدی را که باید فراخوانی کنید به شما می دهد
53
00:01:50,799 –> 00:01:52,399
و سپس آن را به عنوان
54
00:01:52,399 –> 00:01:53,439
تابعی
55
00:01:53,439 –> 00:01:55,280
فراخوانی کنید.
56
00:01:55,280 –> 00:01:56,799
tionary مانند جدول پرش عمل می کند
57
00:01:56,799 –> 00:01:58,960
که برای سریع کردن کد c استفاده می شود، به
58
00:01:58,960 –> 00:02:00,640
شما یک جستجوی زمان ثابت
59
00:02:00,640 –> 00:02:02,960
از کد برای اجرای بعدی ارائه می دهد و
60
00:02:02,960 –> 00:02:04,399
شما را از انجام یکسری از این کارها باز می دارد، البته اگر نتیجه را
61
00:02:04,399 –> 00:02:06,479
بررسی کنید،
62
00:02:06,479 –> 00:02:08,800
مگر اینکه شما تعداد زیادی پرونده دارید
63
00:02:08,800 –> 00:02:11,360
که احتمالاً کندتر خواهد بود،
64
00:02:11,360 –> 00:02:12,879
یک جدول پرش واقعی فقط از یک
65
00:02:12,879 –> 00:02:14,800
تابع خطی کلید استفاده می کند تا به شما
66
00:02:14,800 –> 00:02:16,480
بگوید چند بایت جلوتر در حافظه دارید تا
67
00:02:16,480 –> 00:02:18,640
بلافاصله بپرید تا دستورالعمل بعدی را پیدا
68
00:02:18,640 –> 00:02:20,480
کنید. تمام کارهایی که یک
69
00:02:20,480 –> 00:02:22,160
فرهنگ لغت پایتون انجام می دهد شامل هش کردن
70
00:02:22,160 –> 00:02:23,680
و انواع چیزهای دیگر است
71
00:02:23,680 –> 00:02:25,280
که بی جهت سرعت برنامه را کاهش می دهد
72
00:02:25,280 –> 00:02:26,080
،
73
00:02:26,080 –> 00:02:27,840
بنابراین احتمالاً هرگز
74
00:02:27,840 –> 00:02:29,440
نمی خواهید این کار را انجام دهید،
75
00:02:29,440 –> 00:02:30,640
اما اگر فکر می کنید
76
00:02:30,640 –> 00:02:31,760
موارد کافی دارید که واقعاً می خواهید برای
77
00:02:31,760 –> 00:02:34,239
انجام این کار اطمینان حاصل کنید که ابتدا اندازه گیری انجام
78
00:02:34,239 –> 00:02:36,080
این کار کاملاً خوانایی کد شما را از بین می برد،
79
00:02:36,080 –> 00:02:37,280
80
00:02:37,280 –> 00:02:39,040
بنابراین لطفاً این کار را انجام ندهید مگر اینکه
81
00:02:39,040 –> 00:02:40,720
واقعاً کد خود را اندازه گیری کرده باشید و
82
00:02:40,720 –> 00:02:42,959
عملکرد قابل توجهی بهبود یافته باشد،
83
00:02:42,959 –> 00:02:44,400
بنابراین اگر بیانیه match فقط
84
00:02:44,400 –> 00:02:46,239
به یک دسته از چک های if other
85
00:02:46,239 –> 00:02:47,599
زیر کاپوت ترجمه می شود
86
00:02:47,599 –> 00:02:49,120
و هیچ
87
00:02:49,120 –> 00:02:51,280
مزیت عملکردی مانند عبارت سوئیچ ندارد، پس
88
00:02:51,280 –> 00:02:52,879
چه چیزی
89
00:02:52,879 –> 00:02:54,720
خوب است و بهتر از
90
00:02:54,720 –> 00:02:57,360
نام واقعی الگوی ساختاری ویژگی که
91
00:02:57,360 –> 00:02:58,560
مطابقت دارد
92
00:02:58,560 –> 00:03:00,000
، فکر می کنم بزرگترین است. مورد استفاده برای
93
00:03:00,000 –> 00:03:02,000
دستور تطبیق تطبیق در داخل یک
94
00:03:02,000 –> 00:03:03,760
ساختار درخت مانند است
95
00:03:03,760 –> 00:03:05,920
به ویژه اینکه من در مورد
96
00:03:05,920 –> 00:03:09,519
درختان نحو
97
00:03:09,519 –> 00:03:12,080
انتزاعی و درختان نحو انضمامی صحبت می کنم
98
00:03:12,080 –> 00:03:14,480
99
00:03:14,480 –> 00:03:16,560
. یک
100
00:03:16,560 –> 00:03:18,480
ساختار داده بازگشتی که در آن هر گره
101
00:03:18,480 –> 00:03:20,400
در درخت بخشی از
102
00:03:20,400 –> 00:03:23,120
کد را به یک زبان ابتدایی تجزیه می کند،
103
00:03:23,120 –> 00:03:25,120
در اینجا درخت نحو انتزاعی برای این
104
00:03:25,120 –> 00:03:26,000
کد است،
105
00:03:26,000 –> 00:03:27,760
ما یک ماژول داریم که بدنه آن
106
00:03:27,760 –> 00:03:29,680
دنباله ای از انتساب است که اولین
107
00:03:29,680 –> 00:03:32,239
انتساب نام a را به آن اختصاص می دهد.
108
00:03:32,239 –> 00:03:34,400
مقدار ثابت hello تخصیص دوم
109
00:03:34,400 –> 00:03:35,519
110
00:03:35,519 –> 00:03:37,280
نام b را
111
00:03:37,280 –> 00:03:39,440
به مقدار ثابت اختصاص می دهد subscribe یک
112
00:03:39,440 –> 00:03:41,280
درخت نحو بتن اساساً
113
00:03:41,280 –> 00:03:43,680
همان کار را انجام می دهد به جز اینکه als o اطلاعات کافی را ردیابی می کند
114
00:03:43,680 –> 00:03:45,120
تا بتواند
115
00:03:45,120 –> 00:03:47,440
منبع اصلی را بازسازی کند،
116
00:03:47,440 –> 00:03:48,959
از چه نوع پرانتزهایی
117
00:03:48,959 –> 00:03:51,599
استفاده کرده اید از چه نوع فضای سفیدی استفاده کرده اید
118
00:03:51,599 –> 00:03:54,080
و حتی
119
00:03:54,080 –> 00:03:55,760
نظرات یک ویدیوی قبلی را که قبلاً
120
00:03:55,760 –> 00:03:57,439
در مورد نحوه استفاده از آن صحبت کردم را پیگیری می کند. کتابخانه ast داخلی
121
00:03:57,439 –> 00:03:59,360
برای ایجاد قوانین کد سفارشی برای
122
00:03:59,360 –> 00:04:01,519
پایه کد شما، اما قوانین بسیار
123
00:04:01,519 –> 00:04:03,200
ساده بودند و به هیچ یک از
124
00:04:03,200 –> 00:04:04,879
قالب بندی کد شما بستگی نداشت،
125
00:04:04,879 –> 00:04:06,480
در این ویدیو خواهیم دید که چگونه می توانیم از
126
00:04:06,480 –> 00:04:08,879
libcst استفاده کنیم. کتابخانه درخت نحو
127
00:04:08,879 –> 00:04:10,959
در ارتباط با دستور تطابق
128
00:04:10,959 –> 00:04:12,799
به منظور تطبیق با یک
129
00:04:12,799 –> 00:04:15,120
موقعیت پیچیدهتر واقعگرایانه
130
00:04:15,120 –> 00:04:16,560
، آیا این مثال معروف را دیدهاید که
131
00:04:16,560 –> 00:04:19,199
در اطراف شناور است درست است درست برابر
132
00:04:19,199 –> 00:04:21,440
با درست درست درست است
133
00:04:21,440 –> 00:04:22,960
پاسخ
134
00:04:22,960 –> 00:04:24,160
درست است درست درست
135
00:04:24,160 –> 00:04:25,360
136
00:04:25,360 –> 00:04:27,040
غلط است دلیل آن این است که به این صورت تجزیه میشود
137
00:04:27,040 –> 00:04:30,720
چند تا از true true را می بیند
138
00:04:30,720 –> 00:04:32,960
و عبارت بولی true
139
00:04:32,960 –> 00:04:35,680
برابر با دو برابر true true true می کند، بنابراین
140
00:04:35,680 –> 00:04:38,560
true و false البته اگر
141
00:04:38,560 –> 00:04:40,080
پرانتزهایی مانند این قرار دهید، پاسخ را
142
00:04:40,080 –> 00:04:42,479
خواهید گرفت. اگر انتظار خوبی داشتید،
143
00:04:42,479 –> 00:04:44,000
بیایید
144
00:04:44,000 –> 00:04:46,080
برای تشخیص این سناریو از عبارت تطبیق استفاده
145
00:04:46,080 –> 00:04:48,000
کنیم، بیایید با ایجاد یک کلاس بازدیدکننده که
146
00:04:48,000 –> 00:04:50,639
از بازدیدکننده cst به ارث میبرد، شروع
147
00:04:50,639 –> 00:04:52,320
کنیم، اگر یکی از روشهای زیرخط بازدید را لغو
148
00:04:52,320 –> 00:04:54,639
کنیم،
149
00:04:54,639 –> 00:04:56,639
کتابخانه این متد را برای هر گره از آن نوع فراخوانی میکند.
150
00:04:56,639 –> 00:04:58,800
که پیدا می کند، بنابراین در این مورد،
151
00:04:58,800 –> 00:05:00,400
برای هر تاپلی که
152
00:05:00,400 –> 00:05:03,120
در cst پیدا می کند، این تابع را فراخوا