در این مطلب، ویدئو Adam Serafini: افزایش سرعت پایتون با Zig با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:25:53
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,400 –> 00:00:06,799
سلام به همه من آدام هستم یک مهندس نرم افزار
2
00:00:06,799 –> 00:00:09,760
در قهرمان تحویل هستم و
3
00:00:09,760 –> 00:00:11,679
عنوان سخنرانی من افزایش سرعت پایتون
4
00:00:11,679 –> 00:00:14,080
با زیگ تور از طریق zigg the python
5
00:00:14,080 –> 00:00:16,800
c api و چالش های بسته بندی است، اکنون
6
00:00:16,800 –> 00:00:18,400
قبل از آماده شدن برای این سخنرانی
7
00:00:18,400 –> 00:00:20,720
هرگز چیزی ننوشته بودم. zig و من
8
00:00:20,720 –> 00:00:22,800
میخواستم سریع دست نشان دهم تا بفهمم آیا
9
00:00:22,800 –> 00:00:27,199
کسی در اینجا قبل از Okay زیگ نوشته است یا خیر،
10
00:00:27,199 –> 00:00:30,080
بنابراین چند نفر و اما
11
00:00:30,080 –> 00:00:32,479
در مورد c چه کسی هر کسی هر c را در
12
00:00:32,479 –> 00:00:35,200
سال گذشته نوشته است، خیلیها
13
00:00:35,200 –> 00:00:36,880
در واقع من نمینویسم. توقع هیچ دانشی از
14
00:00:36,880 –> 00:00:38,079
ziggler c
15
00:00:38,079 –> 00:00:40,480
uh در این گفتگو نداشته باشید، من چند بار به اشاره گرها اشاره خواهم کرد
16
00:00:40,480 –> 00:00:42,079
، اما شما واقعاً نیازی به
17
00:00:42,079 –> 00:00:43,920
درک آنها ندارید،
18
00:00:43,920 –> 00:00:46,160
اما ابتدا یک اعتراف در مورد عنوان
19
00:00:46,160 –> 00:00:47,920
اگر توضیحات را
20
00:00:47,920 –> 00:00:49,280
در برنامه بخوانید، باید متوجه شوید
21
00:00:49,280 –> 00:00:51,039
که چه چیزی من در حال
22
00:00:51,039 –> 00:00:53,600
صحبت هستم، اما وقتی می گویم سرعت بخشیدن به
23
00:00:53,600 –> 00:00:55,840
پایتون با زیگ، البته
24
00:00:55,840 –> 00:00:58,719
منظور خود زبان برنامه نویسی پایتون نیست،
25
00:00:58,719 –> 00:01:00,960
اما چیزی که نشان خواهم داد
26
00:01:00,960 –> 00:01:04,479
سرعت بخشیدن به اکوسیستم کتابخانه پایتون
27
00:01:04,479 –> 00:01:08,000
با zig و به طور خاص با
28
00:01:08,000 –> 00:01:10,640
ماژول های افزونه wr است. به زبان purezig
29
00:01:10,640 –> 00:01:13,280
است که معمولاً با c نوشته میشود،
30
00:01:13,280 –> 00:01:15,520
بنابراین عنوان کامل ممکن است
31
00:01:15,520 –> 00:01:17,040
اکوسیستم کتابخانه پایتون را با
32
00:01:17,040 –> 00:01:18,799
ماژولهای الحاقی که به صورت زیگ خالص نوشته شدهاند سرعت ببخشد،
33
00:01:18,799 –> 00:01:20,880
اما از آنجایی که این کمی لقمهای است، من
34
00:01:20,880 –> 00:01:23,759
به این عنوان سادهتر گیر دادم،
35
00:01:23,759 –> 00:01:25,759
بنابراین سوالی طبیعی است که باید بپرسم. این
36
00:01:25,759 –> 00:01:29,040
نکته به این دلیل است که چرا و برای انگیزه دادن به
37
00:01:29,040 –> 00:01:31,759
این صحبت، به چیزی اشاره می کنم
38
00:01:31,759 –> 00:01:34,079
که این یک سخنرانی حمایت شده است، چیزی
39
00:01:34,079 –> 00:01:35,439
که برای شرکت ها مهم است، منظورم
40
00:01:35,439 –> 00:01:37,200
این است که انواع و اقسام توجیهات وجود دارد برای
41
00:01:37,200 –> 00:01:39,920
اینکه برنامه ها
42
00:01:39,920 –> 00:01:43,119
از پردازنده و حافظه کمتری استفاده کنند و سریعتر کار کنند،
43
00:01:43,119 –> 00:01:45,280
به عنوان مثال محیطی. اما برای یک
44
00:01:45,280 –> 00:01:48,159
شرکت یک دلیل بزرگ پول است،
45
00:01:48,159 –> 00:01:50,960
این یک کانال سست در تحویل قهرمان
46
00:01:50,960 –> 00:01:54,399
به نام بردهای عملکردی است که در آن تیمها
47
00:01:54,399 –> 00:01:57,520
کاهش تأخیر و کاهش مصرف منابع را
48
00:01:57,520 –> 00:01:59,840
که به دست
49
00:01:59,840 –> 00:02:01,680
آوردهاند ارسال میکنند و کریستین هاردنبرگ ما در این
50
00:02:01,680 –> 00:02:03,840
کانال است و مرتباً در
51
00:02:03,840 –> 00:02:05,600
مورد این پیشرفتها نظر میدهد.
52
00:02:05,600 –> 00:02:07,680
چرا او در آن کانال است من
53
00:02:07,680 –> 00:02:10,000
واقعا نمی توانم او را بهتر از
54
00:02:10,000 –> 00:02:13,599
خود
55
00:02:13,599 –> 00:02:14,720
56
00:02:14,720 –> 00:02:17,040
کریستین قرار دهم. elivery hero در
57
00:02:17,040 –> 00:02:19,840
تعدادی از مکانهای مختلف بدیهی است که
58
00:02:19,840 –> 00:02:22,000
دادهها و یادگیری ماشینی، اما همچنین
59
00:02:22,000 –> 00:02:24,239
مناطق ارائه تصویر برای ارائه خدمات پشتیبانی مشتری
60
00:02:24,239 –> 00:02:27,840
چت بازاریابی q تسویهحساب بازرگانی
61
00:02:27,840 –> 00:02:30,560
در حدود 10 میلیارد
62
00:02:30,560 –> 00:02:32,959
درخواست http در ماه توسط یک
63
00:02:32,959 –> 00:02:34,800
بکاند پایتون انجام میشود، بنابراین
64
00:02:34,800 –> 00:02:37,200
ما میتوانیم هر نوع پیشرفتی را انجام دهیم.
65
00:02:37,200 –> 00:02:39,040
عملکرد برنامه make to python در واقع
66
00:02:39,040 –> 00:02:41,840
باعث صرفه جویی در هزینه ما
67
00:02:41,920 –> 00:02:44,080
می شود. بخش دیگر این سوال که
68
00:02:44,080 –> 00:02:45,840
چرا zig
69
00:02:45,840 –> 00:02:47,200
و
70
00:02:47,200 –> 00:02:48,720
قضاوت از روی دست در اوایل
71
00:02:48,720 –> 00:02:52,239
ممکن است این سوال را نیز داشته باشید که zig چیست،
72
00:02:52,239 –> 00:02:53,120
بنابراین
73
00:02:53,120 –> 00:02:55,440
به قول سازنده آن یک زبان سیستم کامپایل شده است.
74
00:02:55,440 –> 00:02:56,400
75
00:02:56,400 –> 00:02:59,519
اندرو کلی
76
00:02:59,519 –> 00:03:01,599
زیگ یک زبان برنامه نویسی سیستمی است
77
00:03:01,599 –> 00:03:04,959
که قرار است جایگزین c شود که یک
78
00:03:04,959 –> 00:03:08,080
هدف بسیار بلندپروازانه است
79
00:03:08,080 –> 00:03:09,280
و
80
00:03:09,280 –> 00:03:10,879
من فکر می کنم
81
00:03:10,879 –> 00:03:15,360
برای درک اینکه هدف زیگ دارای چند
82
00:03:15,760 –> 00:03:18,959
ویژگی کشنده برای قطع کردن با c است
83
00:03:18,959 –> 00:03:20,000
و
84
00:03:20,000 –> 00:03:21,599
برای جایگزینی
85
00:03:21,599 –> 00:03:24,319
c احتمالا باید
86
00:03:24,319 –> 00:03:26,720
با کوه های c قطع کنید. کدهایی که در دنیا وجود دارند
87
00:03:26,720 –> 00:03:28,239
و من فقط به سرعت در
88
00:03:28,239 –> 00:03:30,959
مورد برخی از آن ویژگی
89
00:03:30,959 –> 00:03:33,120
ها صحبت خواهم کرد، اولین ویژگی این است که می توانید
90
00:03:33,120 –> 00:03:36,080
مستقیماً وارد کنید از یک فایل هدر c، بنابراین
91
00:03:36,080 –> 00:03:37,920
تابع داخلی c import می تواند
92
00:03:37,920 –> 00:03:39,680
برای وارد کردن مستقیم نمادها از
93
00:03:39,680 –> 00:03:41,599
فایل های هدر استفاده شود، یک فایل هدر
94
00:03:41,599 –> 00:03:42,400
البته
95
00:03:42,400 –> 00:03:44,720
یک فایل با پسوند.h است که حاوی
96
00:03:44,720 –> 00:03:46,560
اعلان های تابع c و تعاریف ماکرو است،
97
00:03:46,560 –> 00:03:49,440
به عنوان مثال python.h
98
00:03:49,440 –> 00:03:51,599
که یک فایل است. فایلی که با پایتون ارسال میشود و
99
00:03:51,599 –> 00:03:52,959
100
00:03:52,959 –> 00:03:55,439
یک api c را نشان میدهد که میتوانیم آن را فراخوانی کنیم و این یک
101
00:03:55,439 –> 00:03:57,040
تکه از zig است که در اینجا
102
00:03:57,040 –> 00:03:59,439
یک متغیر const را اعلام میکنیم
103
00:03:59,439 –> 00:04:02,239
و فایل هدر پایتون را وارد میکنیم و
104
00:04:02,239 –> 00:04:04,319
همچنین یک ماکرو را در خط دو تعریف میکنیم و
105
00:04:04,319 –> 00:04:06,799
آن را به pi اختصاص میدهیم.
106
00:04:06,799 –> 00:04:08,480
107
00:04:08,480 –> 00:04:10,480
نکته در مورد این است که از پایتون
108
00:04:10,480 –> 00:04:12,640
3.2 چیزی به نام
109
00:04:12,640 –> 00:04:15,120
api محدود داریم که زیرمجموعه ای از پایتون
110
00:04:15,120 –> 00:04:17,759
c است، بنابراین هر افزونه ای که فقط از
111
00:04:17,759 –> 00:04:20,238
این api محدود استفاده می کند می تواند یک بار کامپایل شود
112
00:04:20,238 –> 00:04:22,320
و با چندین نسخه
113
00:04:22,320 –> 00:04:23,360
پایتون کار کند
114
00:04:23,360 –> 00:04:26,160
و آن api به خوبی مستند شده است.
115
00:04:26,160 –> 00:04:29,040
در مستندات پایتون،
116
00:04:29,040 –> 00:04:30,720
بنابراین ویژگی دوم
117
00:04:30,720 –> 00:04:33,199
در اینجا ما تابعی در zig داریم
118
00:04:33,199 –> 00:04:35,840
که میتوان آن را از c
119
00:04:35,840 –> 00:04:39,600
با سبک c قراردادی فراخوانی کرد
120
00:04:39,600 –> 00:04:42,000
که به تابع zig اجازه میدهد
121
00:04:42,000 –> 00:04:44,000
از c فراخوانی
122
00:04:44,000 –> 00:04:45,919
شود و دارای انواع اولیه است.
123
00:04:45,919 –> 00:04:49,600
برای خاص سازگاری b i با
124
00:04:49,600 –> 00:04:52,560
شورت های c در طولانی و غیره
125
00:04:52,560 –> 00:04:54,639
حتی دارای نشانگرهای c است، حتی اگر
126
00:04:54,639 –> 00:04:57,280
قرار نیست از این زیگ ها استفاده کنید،
127
00:04:57,280 –> 00:04:59,840
می تواند به طور خودکار کد c را ترجمه کند
128
00:04:59,840 –> 00:05:01,360
که البته
129
00:05:01,360 –> 00:05:04,000
برای درک یک فایل هدر باید قادر به انجام آن باشد،
130
00:05:04,000 –> 00:05:05,120
اما برخی از آنها وجود دارد. تفاوت در
131
00:05:05,120 –> 00:05:06,880
نحوه عملکرد نشانگرها بین z و c به
132
00:05:06,880 –> 00:05:09,039
عنوان مثال
133
00:05:09,039 –> 00:05:11,520
zig اجازه تهی نمی دهد یا دارای یک
134
00:05:11,520 –> 00:05:14,479
نوع اشاره گر اختیاری صریح است و
135
00:05:14,479 –> 00:05:17,440
um یک نحو متفاوت برای اشاره گر
136
00:05:17,440 –> 00:05:19,440
به آرایه ها به جای اشاره گر به
137
00:05:19,440 –> 00:05:21,039
آیتم های منفرد دارد،
138
00:05:21,039 –> 00:05:22,960
اما توانایی برای اعلام c وجود دارد.
139
00:05:22,960 –> 00:05:24,880
اشاره گر سبک
140
00:05:24,880 –> 00:05:28,720
و در نهایت می توانید حتی از zig cli
141
00:05:28,720 –> 00:05:30,320
برای ترجمه
142
00:05:30,320 –> 00:05:34,800
کد منبع c از جمله ماکروها
143
00:05:34,880 –> 00:05:36,479
استفاده کنید، بنابراین من در واقع از این قابلیت در
144
00:05:36,479 –> 00:05:38,720
هنگام ساخت این نسخه آزمایشی استفاده می کنم
145
00:05:38,720 –> 00:05:41,840
و درک می کنم که zig چگونه فایل هدر پایتون را مشاهده کرده است،
146
00:05:41,840 –> 00:05:44,160
147
00:05:44,160 –> 00:05:46,479
بنابراین من در مورد آن صحبت زیادی کرده ام.
148
00:05:46,479 –> 00:05:48,000
149
00:05:48,000 –> 00:05:50,240
توانایی زیگ زیگ برای تعامل با c، پس
150
00:05:50,240 –> 00:05:53,199
چرا فقط ماژول های افزونه را در c نمی نویسیم،
151
00:05:53,199 –> 00:05:54,800
منظور این است که پاسخ احمقانه به این سوال
152
00:05:54,800 –> 00:05:56,240
این است که صحبت را
153
00:05:56,240 –> 00:05:58,720
افزایش سرعت پایتون با c و می نامند. من همچنین
154
00:05:58,720 –> 00:06:00,479
دوست دارم زندگی را برای خودم واقعاً سخت
155
00:06:00,479 –> 00:06:01,600
کنم،
156
00:06:01,600 –> 00:06:03,919
به همین دلیل
157
00:06:03,919 –> 00:06:06,479
تصمیم گرفتم در مورد زیگ صحبت کنم، اما به
158
00:06:06,479 –> 00:06:07,759
طور جدی تر
159
00:06:07,759 –> 00:06:11,280
، فکر می کنم زیگ چند نوع راحتی مدرن دارد
160
00:06:11,280 –> 00:06:14,160
که آن را از c متمایز می کند
161
00:06:14,160 –> 00:06:16,560
و اوه من پنهانی امیدوار هستم که
162
00:06:16,560 –> 00:06:18,400
ممکن است یک رنسانس وجود داشته باشد.
163
00:06:18,400 –> 00:06:21,280
در نوشتن ماژول های افزونه
164
00:06:21,280 –> 00:06:24,080
در zig به جای اینکه ببینید، به عنوان مثال
165
00:06:24,080 –> 00:06:25,600
، یک کتابخانه استاندارد غنی و جامع
166
00:06:25,600 –> 00:06:27,199
دارد که چیزی است که من فکر می کنم پایتون
167
00:06:27,199 –> 00:06:29,759
واقعاً از آن سود برد
168
00:06:29,759 –> 00:06:32,960
، مدیر بسته رسمی به زودی
169
00:06:32,960 –> 00:06:36,400
zig فقط در نسخه 0.9 است و ایده
170
00:06:36,400 –> 00:06:38,000
در نسخه 1 وجود دارد یک مدیر بسته رسمی باشید،
171
00:06:38,000 –> 00:06:39,440
بنابراین
172
00:06:39,440 –> 00:06:41,199
ساخت
173
00:06:41,199 –> 00:06:43,360
کد از وابستگیهای دیگر آسان خواهد بود،
174
00:06:43,360 –> 00:06:44,960
دارای یک زنجیره ابزار و
175
00:06:44,960 –> 00:06:47,600
سیستم ساخت متقابل پلتفرم است، بنابراین آنها ساختن چند پلت فرم را
176
00:06:47,600 –> 00:06:49,360
بسیار جدی میگیرند.
177
00:06:49,360 –> 00:06:51,919
178
00:06:51,919 –> 00:06:54,479
179
00:06:54,560 –> 00:06:56,639
180
00:06:56,639 –> 00:06:58,240
181
00:06:58,240 –> 00:07:00,400
نسخه ویندوز zig
182
00:07:00,400 –> 00:07:02,880
آن را در wine اجرا می کند تا یک باینری لینوکس را کامپایل کند
183
00:07:02,880 –> 00:07:05,039
و سپس آن را اجرا می کند
184
00:07:05,039 –> 00:07:07,759
و در نهایت هیچ ماکرو ندارد، شاید
185
00:07:07,759 –> 00:07:09,520
این کمی بحث برانگیز باشد. چیزی که باید
186
00:07:09,520 –> 00:07:11,840
به عنوان یک ویژگی ذکر شود، اما من حدس میزنم این
187
00:07:11,840 –> 00:07:14,080
اعتقاد اندرو کلی است که ماکروها
188
00:07:14,080 –> 00:07:15,360
به
189
00:07:15,360 –> 00:07:17,759
قابلیت نگهداری کمک نمیکنند، زگیلهای مختلف حذف شده در
190
00:07:17,759 –> 00:07:19,599
اجرای زمان کامپایل که کمی
191
00:07:19,599 –> 00:07:22,720
شبیه الگوهای c پلاس پلاس است، اما
192
00:07:22,720 –> 00:07:25,199
انواع اختیاری زیباتر، هیچ اشارهای را منع میکند،
193
00:07:25,199 –> 00:07:27,759
فقط امکانات مختلف مدرن
194
00:07:27,759 –> 00:07:28,560
و
195
00:07:28,560 –> 00:07:31,039
یک نکته نهایی من فکر میکنم زیگ تا حدی همسویی
196
00:07:31,039 –> 00:07:32,960
فلسفی و فرهنگی
197
00:07:32,960 –> 00:07:34,400
با
198
00:07:34,400 –> 00:07:36,960
پایتون دارد.
199
00:07:36,960 –> 00:07:38,400
200
00:07:38,400 –> 00:07:40,240
201
00:07:40,240 –> 00:07:42,479
202
00:07:42,479 –> 00:07:44,639
203
00:07:44,639 –> 00:07:46,560
204
00:07:46,560 –> 00:07:48,720
بهتر از این است که
205
00:07:48,720 –> 00:07:50,080
خواندن کد به جای نوشتن کد
206
00:07:50,080 –> 00:07:52,479
، تنها یک راه واضح
207
00:07:52,479 –> 00:07:54,960
برای انجام کارهای آشناست و من
208
00:07:54,960 –> 00:07:57,039
ترجیح میدهم آخرین راه را با هم در
209
00:07:57,039 –> 00:07:59,520
خدمت کاربران قرار دهیم، که یادآوری خوبی است
210
00:07:59,520 –> 00:08:02,080
از اینکه چرا همه ما اینجا هستیم
211
00:08:02,080 –> 00:08:04,319
، فرضیه طولانی مدت مقدمه ما
212
00:08:04,319 –> 00:08:05,759
میتوانیم و باید به بهبود
213
00:08:05,759 –> 00:08:07,360
عملکرد اکوسیستم کتابخانه پایتون ادامه دهیم
214
00:08:07,360 –> 00:08:10,960
و zig میتواند به ما در انجام این کار کمک کند.
215
00:08:10,960 –> 00:08:13,759
ما به جزئیات فنی بیشتری خواهیم پرداخت
216
00:08:13,759 –> 00:08:16,479
،
217
00:08:16,479 –> 00:08:17,919
البته این فقط یک بحث نیست، یک مخزن وجود دارد
218
00:08:17,919 –> 00:08:20,720
که می توانید در
219
00:08:20,720 –> 00:08:23,120
اکانت github من به نام xaml به آن مراجعه کنید
220
00:08:23,120 –> 00:08:26,000
و من سه درخواست کشش را ساختاربندی کرده ام،
221
00:08:26,000 –> 00:08:27,680
آنها به
222
00:08:27,680 –> 00:08:28,960
نوعی در دستور دهید که
223
00:08:28,960 –> 00:08:31,039
224
00:08:31,039 –> 00:08:33,200
ابتدا به مسائل مربوطه بپردازم
225
00:08:33,200 –> 00:08:34,799
. منظور من این است که قصد من
226
00:08:34,799 –> 00:08:36,640
این است که در واقع یک
227
00:08:36,640 –> 00:08:39,519
کتابخانه عبوری یامل کاملاً کارآمد باشد،
228
00:08:39,519 –> 00:08:41,200
در حال حاضر آن را روی
229
00:08:41,200 –> 00:08:42,640
سیستم عامل های مختلف آزمایش نکرده ام، اما به
230
00:08:42,640 –> 00:08:44,080
صورت زیگ خالص نوشته شده است.
231
00:08:44,080 –> 00:08:46,000
فایل هدر پایتون مستقیماً فقط
232
00:08:46,000 –> 00:08:47,680
با استفاده از زیگ و امم کامپایل می شود
233
00:08:47,680 –> 00:08:49,839
و اوم
234
00:08:49,839 –> 00:08:50,720
بله،
235
00:08:50,720 –> 00:08:52,640
بگذارید ساده ترین
236
00:08:52,640 –> 00:08:54,480
پسوند ممکن C چیست و سپس
237
00:08:54,480 –> 00:08:56,399
نسخه زیگ آن را نشان می دهم و
238
00:08:56,399 –> 00:08:58,720
تقریباً خواهیم دید که آنقدرها متفاوت
239
00:08:58,720 –> 00:09:00,800
نیست، بنابراین دیگ بخار اضافی برای
240
00:09:00,800 –> 00:09:03,200
نوشتن این، پسوند
241
00:09:03,200 –> 00:09:05,120
zig است نه خیلی و
242
00:09:05,120 –> 00:09:07,040
نه خیلی، بنابراین البته برای شروع
243
00:09:07,040 –> 00:09:08,880
، هدر پایتون را
244
00:09:08,880 –> 00:09:10,320
در اینجا وارد می کنیم، تابعی داریم که
245
00:09:10,320 –> 00:09:11,839
نشانگر شی pi را
246
00:09:11,839 –> 00:09:14,959
در خط هفت برمی گرداند، ما یک عدد صحیح را
247
00:09:14,959 –> 00:09:16,880
با وا lue one که تمام کاری است که ماژول ما
248
00:09:16,880 –> 00:09:18,320
انجام می دهد
249
00:09:18,320 –> 00:09:20,399
از تابع load یک عدد صحیح را با
250
00:09:20,399 –> 00:09:24,480
مقدار یک برمی گرداند. ما
251
00:09:24,480 –> 00:09:27,760
متدهای uh ماژول را تعریف کرده ایم
252
00:09:27,760 –> 00:09:30,800
uh mod نام متد flags
253
00:09:30,800 –> 00:09:32,800
meth no args یک ماکرو است که به پایتون می گوید
254
00:09:32,800 –> 00:09:34,959
این تابع نباید. انتظار
255
00:09:34,959 –> 00:09:37,200
هیچ پارامتر و مقداری مستند
256
00:09:37,200 –> 00:09:39,120
برای آن تابع و یک مقدار نگهبان
257
00:09:39,120 –> 00:09:42,000
که می گوید این پایان روش است
258
00:09:42,000 –> 00:09:44,240
و همانطور که گفتم همه بخشی از
259
00:09:44,240 –> 00:09:45,360
260
00:09:45,360 –> 00:09:46,720
api محدود است
261
00:09:46,720 –> 00:09:48,640
که بسیار خوب است زیرا می توانیم
262
00:09:48,640 –> 00:09:50,399
به پایدار بودن آن در
263
00:09:50,399 –> 00:09:52,959
نسخه های مختلف وابسته باشیم. python
264
00:09:52,959 –> 00:09:55,360
سپس باید خود ماژول را تعریف کنیم
265
00:09:55,360 –> 00:09:58,399
266
00:09:58,880 –> 00:10:02,240
تا متدها را به این ماژول منتقل کنیم.
267
00:10:02,240 –> 00:10:03,440
268
00:10:03,440 –> 00:10:05,519
269
00:10:05,519 –> 00:10:07,040
270
00:10:07,040 –> 00:10:10,000
271
00:10:10,000 –> 00:10:12,079
272
00:10:12,079 –> 00:10:15,360
273
00:10:15,680 –> 00:10:18,959
ما باید آن را
274
00:10:18,959 –> 00:10:20,320
کامپایل کنیم
275
00:10:20,320 –> 00:10:22,800
و python حتی
276
00:10:22,800 –> 00:10:24,399
یک روش نسبتاً خوب برای انجام آن ارائه می دهد
277
00:10:24,399 –> 00:10:26,320
بدون اینکه حتی نگران صدای clang
278
00:10:26,320 –> 00:10:29,279
یا gcc باشیم، فقط می توانیم یک پسوند را
279
00:10:29,279 –> 00:10:31,120
با
280
00:10:31,120 –> 00:10:33,920
منبع uh c اعلام کنیم. فایل
281
00:10:33,920 –> 00:10:34,959
um
282
00:10:34,959 –> 00:10:36,959
آن را به تابع setup بدهید و سپس
283
00:10:36,959 –> 00:10:40,000
وقتی pip install را اجرا میکنیم کار میکند
284
00:10:40,000 –> 00:10:42,240
و کاری که در واقع انجام میدهد
285
00:10:42,240 –> 00:10:44,560
این است که یک
286
00:10:44,560 –> 00:10:46,560
فایل شی مشترک برای ماژول میسازد
287
00:10:46,560 –> 00:10:49,279
که یک فایل باینری است که پایتون میتواند
288
00:10:49,279 –> 00:10:51,440
آن را درک کند و این شی مشترک را کپی میکند.
289
00:10:51,440 –> 00:10:53,680
در دایرکتوری بستههای سایت
290
00:10:53,680 –> 00:10:56,480
محیط پایتون فایل کنید
291
00:10:56,480 –> 00:10:58,160
و سپس میتوانید آن را وارد کنید
292
00:10:58,160 –> 00:10:58,959
293
00:10:58,959 –> 00:11:01,600
و ادعا کنید که در واقع تابع load
294
00:11:01,600 –> 00:11:03,360
یک را برمیگرداند،
295
00:11:03,360 –> 00:11:06,160
بنابراین چگونه در zig
296
00:11:06,160 –> 00:11:08,079
بسیار شبیه به نظر میرسد
297
00:11:08,079 –> 00:11:09,519
اینجا قطعهای است که
298
00:11:09,519 –> 00:11:11,360
قبلا نشان دادم که در حال وارد کردن هستیم.
299
00:11:11,360 –> 00:11:13,760
هدر پایتون و
300
00:11:13,760 –> 00:11:16,800
تعریف اندازه pi t تمیز ماکرو
301
00:11:16,800 –> 00:11:17,839
این است که
302
00:11:17,839 –> 00:11:20,079
این یک دیگ بخار اضافی است، همچنین
303
00:11:20,079 –> 00:11:21,839
لازم نیست، اما
304
00:11:21,839 –> 00:11:24,240
برخلاف c نمادهای موجود در فایل هدر
305
00:11:24,240 –> 00:11:26,720
در اینجا به طور ضمنی در محدوده نیستند،
306
00:11:26,720 –> 00:11:28,880
بنابراین من بخش هایی از
307
00:11:28,880 –> 00:11:30,560
فایل هدر پایتون را انتخاب کردم. که من از آنها استفاده می کنم و
308
00:11:30,560 –> 00:11:33,360
آنها را به متغیرهای const نسبت می دهم
309
00:11:33,360 –> 00:11:35,360
در
310
00:11:35,360 –> 00:11:38,320
اینجا ما تابع بارگذاری را داریم که
311
00:11:38,320 –> 00:11:40,800
قبلاً داشتیم اما کمی متفاوت است
312
00:11:40,800 –> 00:11:42,800
به عنوان مثال
313
00:11:42,800 –> 00:11:43,920
um
314
00:11:43,920 –> 00:11:46,399
zig می داند که روش pytho n
315
00:11:46,399 –> 00:11:49,040
این تابع را فراخوانی می کند به این معنی که نشانگرهای self
316
00:11:49,040 –> 00:11:51,519
و args می توانند تهی باشند، بنابراین
317
00:11:51,519 –> 00:11:52,800
باید آن اشاره گرها را
318
00:11:52,800 –> 00:11:54,639
با علامت سوال به عنوان nullable اعلام کنیم و
319
00:11:54,639 –> 00:11:56,399
البته قرارداد فراخوانی باید به
320
00:11:56,399 –> 00:11:57,519
سبک c باشد،
321
00:11:57,519 –> 00:11:59,519
اما نوع برگشتی یکسان است، یک
322
00:11:59,519 –> 00:12:01,440
شی pi است. نشانگر
323
00:12:01,440 –> 00:12:03,680
تفاوت دیگر بین zig و c این است
324
00:12:03,680 –> 00:12:05,839
که zig به متغیرهای استفاده نشده اجازه نمی دهد
325
00:12:05,839 –> 00:12:07,360
، به همین دلیل است که ما خود و
326
00:12:07,360 –> 00:12:09,040
آرگ ها را به این زیرخط ها اختصاص می دهیم
327
00:12:09,040 –> 00:12:11,360
و خط 17 تقریباً مشابه است.
328
00:12:11,360 –> 00:12:14,320
329
00:12:14,320 –> 00:12:15,600
330
00:12:15,600 –> 00:12:17,200
331
00:12:17,200 –> 00:12:18,240
332
00:12:18,240 –> 00:12:21,839
یک عدد صحیح به سبک c و
333
00:12:21,839 –> 00:12:25,440
بله که آن تابع در
334
00:12:25,440 –> 00:12:27,279
اینجا دوباره همین کار را انجام می دهد، بسیار شبیه است، ما فقط
335
00:12:27,279 –> 00:12:31,600
یک آرایه از defs متد pi را
336
00:12:31,600 –> 00:12:34,8