در این مطلب، ویدئو ctypes را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,680 –> 00:00:02,580
بسیار خوب در این سخنرانی ما می خواهیم
2
00:00:02,580 –> 00:00:05,339
در مورد انواع c نوع c بخشی از
3
00:00:05,339 –> 00:00:07,770
کتابخانه های استاندارد پایتون است، بنابراین
4
00:00:07,770 –> 00:00:09,420
شما نیازی به نصب هیچ چیز اضافی
5
00:00:09,420 –> 00:00:12,509
در اینجا ندارید، این بخشی از هر
6
00:00:12,509 –> 00:00:15,929
توزیع Python است، از Python 2.3 یا
7
00:00:15,929 –> 00:00:18,570
شاید 2.6 I. مطمئن نیستم اما
8
00:00:18,570 –> 00:00:21,810
مطمئناً در توزیعهای 2.6 2.7 پایتون وجود
9
00:00:21,810 –> 00:00:24,660
دارد که به هر حال از
10
00:00:24,660 –> 00:00:27,029
آنچه که انواع C به شما اجازه میدهد این است که
11
00:00:27,029 –> 00:00:32,279
به کتابخانههایی که ممکن است در C
12
00:00:32,279 –> 00:00:37,140
یا C++ یا Fortran نوشته شده باشند فراخوانی کنید و آن
13
00:00:37,140 –> 00:00:39,149
توابع را از داخل پایتون فراخوانی کنید، بنابراین
14
00:00:39,149 –> 00:00:41,510
اساساً یک راه آسان برای تولید
15
00:00:41,510 –> 00:00:44,129
بستهبندیها برای این کتابخانههای موجود
16
00:00:44,129 –> 00:00:46,110
و میتوانید از آن برای سرعت بخشیدن به کد خود استفاده کنید،
17
00:00:46,110 –> 00:00:49,170
بنابراین اگر
18
00:00:49,170 –> 00:00:52,020
بخشی از کد پایتون خود را دارید که کند
19
00:00:52,020 –> 00:00:54,539
است، میتوانید آن را در زبان برنامهنویسی c بنویسید
20
00:00:54,539 –> 00:00:57,090
و سپس ایجاد کنید.
21
00:00:57,090 –> 00:00:59,489
کتابخانه مشترک و شما می توانید از انواع c
22
00:00:59,489 –> 00:01:01,260
برای فراخوانی آن استفاده کنید، راه های دیگری نیز برای انجام
23
00:01:01,260 –> 00:01:05,580
آن وجود دارد که در مورد آن صحبت خواهیم کرد، اما
24
00:01:05,580 –> 00:01:09,270
انواع c بسیار آسان
25
00:01:09,270 –> 00:01:11,250
است و زمانی که از قبل یک کتابخانه دارید بسیار مفید است،
26
00:01:11,250 –> 00:01:13,320
بنابراین ممکن است بدانید اگر ممکن است بدانید
27
00:01:13,320 –> 00:01:15,000
مجموعه ای از کتابخانه اشتراکی، کد دیگری را داشته باشید
28
00:01:15,000 –> 00:01:16,259
که نوشته شده است و می خواهید
29
00:01:16,259 –> 00:01:18,540
از آن استفاده کنید و می خواهید آن را از
30
00:01:18,540 –> 00:01:20,340
داخل پایتون انجام دهید و اینجاست که
31
00:01:20,340 –> 00:01:23,369
بسیار مفید است زیرا واقعا آسان است
32
00:01:23,369 –> 00:01:27,090
، دید بسیار پیچیده ای از داده ها دارد، بنابراین اساساً
33
00:01:27,090 –> 00:01:28,860
هر نوع داده ای که می توانید نشان دهید
34
00:01:28,860 –> 00:01:33,770
و ببینید که می توانید
35
00:01:34,090 –> 00:01:37,270
با استفاده از c-types استفاده کنید و بنابراین به نظر من
36
00:01:37,270 –> 00:01:39,549
بهترین راه برای یادگیری انواع c این است که به
37
00:01:39,549 –> 00:01:43,659
چند نمونه نگاه کنید، بنابراین در اینجا یک
38
00:01:43,659 –> 00:01:47,049
مثال وجود دارد که در آن ما تعدادی کد C داریم که
39
00:01:47,049 –> 00:01:50,500
محاسبات فیبوناچی را ایجاد می کند. اعداد
40
00:01:50,500 –> 00:01:54,100
پس این فقط نمونه اولیه است
41
00:01:54,100 –> 00:01:55,990
این تابع واقعی است که محاسبه می کند
42
00:01:55,990 –> 00:01:59,310
Pro به یک عدد صحیح می رسد و یک
43
00:01:59,310 –> 00:02:03,250
عدد فیبوناچی را برمی گرداند و بنابراین اگر می خواهید
44
00:02:03,250 –> 00:02:05,079
این کد را به عنوان یک کتابخانه مشترک کامپایل
45
00:02:05,079 –> 00:02:07,869
کنید، می توانید آن را از یک
46
00:02:07,869 –> 00:02:10,630
اسکریپت پایتون فراخوانی کنید. بنابراین در اینجا
47
00:02:10,630 –> 00:02:13,299
اساساً در حال ایجاد یک کتابخانه پایتون هستیم
48
00:02:13,299 –> 00:02:16,569
یا متاسفم که یک اسکریپت پایتون
49
00:02:16,569 –> 00:02:22,569
که تایپهای الکترونیکی را وارد میکند،
50
00:02:22,569 –> 00:02:28,030
فایل شی اشتراکگذاری شده را این seed dll مینامد، بنابراین میدانید در
51
00:02:28,030 –> 00:02:31,120
دستگاه ویندوز، اشیاء مشترک یا
52
00:02:31,120 –> 00:02:33,640
کتابخانههای مشترک دارای پسوند DLL هستند.
53
00:02:33,640 –> 00:02:38,100
کتابخانه پیوند پویا sion به طوری که
54
00:02:38,100 –> 00:02:41,319
نحو از آنجا می آید، اما به هر حال
55
00:02:41,319 –> 00:02:45,579
ما آن را فراخوانی می کنیم، سپس
56
00:02:45,579 –> 00:02:47,590
با این متغیر مرتبط است که من آن را live fed می نامم،
57
00:02:47,590 –> 00:02:51,340
بنابراین اگر تابعی را تعریف کنیم که
58
00:02:51,340 –> 00:02:55,090
CC است، نوع fib a زیر خط در پایتون
59
00:02:55,090 –> 00:03:00,730
که سپس برمی گرداند،
60
00:03:00,730 –> 00:03:04,810
دوباره با fib fib زنده تماس می گیرد که
61
00:03:04,810 –> 00:03:09,040
به نام C++ اشاره می کند و سپس آن را مقداردهی اولیه
62
00:03:09,040 –> 00:03:12,370
می کنیم، رشته ای را که
63
00:03:12,370 –> 00:03:17,440
به C می
64
00:03:17,440 –> 00:03:20,290
گوییم آن را تبدیل می کنیم. از اسکریپت C
65
00:03:20,290 –> 00:03:23,889
در اینجا بالاست، بنابراین به هر حال وقتی
66
00:03:23,889 –> 00:03:27,430
این wrapper کوچک را داشتیم، میتوانیم از آن
67
00:03:27,430 –> 00:03:30,609
در یک اعلان تعاملی پایتون استفاده کنیم، بنابراین
68
00:03:30,609 –> 00:03:33,639
همه توابع را در fib وارد
69
00:03:33,639 –> 00:03:37,630
میکنیم و سپس فقط انواع C را فراخوانی میکنیم، بنابراین
70
00:03:37,630 –> 00:03:39,360
اجازه دهید نگاه کنیم. در یک مثال در
71
00:03:39,360 –> 00:03:43,950
ترمینال، من قبلاً این
72
00:03:43,950 –> 00:03:47,300
فایلها را در اینجا دریافت کردهام، بنابراین اگر نگاهی
73
00:03:47,300 –> 00:03:52,140
بیندازید fevzi اساساً همان چیزی است که در
74
00:03:52,140 –> 00:03:54,300
پرونده وجود دارد، خوب است که ما آن را به
75
00:03:54,300 –> 00:03:56,130
عنوان یک کتابخانه مشترک جمعآوری میکنیم، اما اجازه دهید ادامه دهیم
76
00:03:56,130 –> 00:03:59,220
و نگاهی بیندازیم. در v I و بنابراین
77
00:03:59,220 –> 00:04:04,860
در این اسکریپت من دو کاره دارم یونهایی
78
00:04:04,860 –> 00:04:07,620
دارم که بهعنوان کد پایتون خالص تعریف شده است، به
79
00:04:07,620 –> 00:04:09,660
طوری که ما
80
00:04:09,660 –> 00:04:12,180
اصلاً کد C
81
00:04:12,180 –> 00:04:15,030
82
00:04:15,030 –> 00:04:18,149
83
00:04:18,149 –> 00:04:21,269
را فراخوانی نمیکنیم.
84
00:04:21,269 –> 00:04:24,450
سپس در اینجا همان
85
00:04:24,450 –> 00:04:26,400
تابع نوع C چرخش است، بنابراین ما به
86
00:04:26,400 –> 00:04:28,230
شما می رویم که بدانید من هر دوی آنها را تعریف کردم تا
87
00:04:28,230 –> 00:04:31,200
بتوانیم برخی از مقایسه ها را به خوبی انجام دهیم، بنابراین ما
88
00:04:31,200 –> 00:04:35,700
با کامپایل کردن فایل شی مشترک شروع
89
00:04:35,700 –> 00:04:37,650
می کنیم. میدانید
90
00:04:37,650 –> 00:04:39,540
چگونه این کار را انجام دهید زیرا میدانید که
91
00:04:39,540 –> 00:04:42,510
اساساً در اینجا کد C را با دست کامپایل میکند،
92
00:04:42,510 –> 00:04:44,610
اما من به شما نشان میدهم که چگونه این کار را انجام
93
00:04:44,610 –> 00:04:49,680
دهم، بنابراین از کامپایلر GCC
94
00:04:49,680 –> 00:04:51,530
با چند گزینه استفاده
95
00:04:51,530 –> 00:04:59,220
میکنم که میخواهم فقط C را کامپایل کنم. فایل، بنابراین اگر
96
00:04:59,220 –> 00:05:01,140
آن ویژگی آن شی را بارگیری کنید، فایل
97
00:05:01,140 –> 00:05:05,250
fib dot o که میتوانیم آن را به یک
98
00:05:05,250 –> 00:05:09,950
شی مشترک مانند این تبدیل
99
00:05:14,039 –> 00:05:17,550
کنیم، بنابراین اکنون شیء مشترک FIB را داریم که در
100
00:05:17,550 –> 00:05:19,529
واقع میخواهم از آن استفاده کنم، میخواهم آن را
101
00:05:19,529 –> 00:05:22,289
حذف کنم دوباره این کار را انجام دهید. m از
102
00:05:22,289 –> 00:05:24,990
قراردادی استفاده میکند که در
103
00:05:24,990 –> 00:05:27,210
مدلها و ماژولهای افزونه پایتون استفاده میشود s و اینکه
104
00:05:27,210 –> 00:05:29,219
کتابخانه مشترک با یک
105
00:05:29,219 –> 00:05:33,899
زیرخط هدایت می شود به طوری که به اشتراک گذاشته شده است که من فقط می
106
00:05:33,899 –> 00:05:35,279
خواهم آن را با یک
107
00:05:35,279 –> 00:05:38,869
زیرخط در جلوی آن تغییر نام دهم، بنابراین
108
00:05:38,869 –> 00:05:44,039
به هر حال اکنون ما باید بتوانیم پایتون را اجرا کنیم،
109
00:05:44,039 –> 00:05:46,559
من ipython را اجرا می کنم تا
110
00:05:46,559 –> 00:05:49,860
ما میتوانیم از ماژول افزودن زمان آن استفاده کنیم، اما میتوانیم
111
00:05:49,860 –> 00:05:53,599
از طریق fib import
112
00:05:53,599 –> 00:05:56,939
همه چیز را بگوییم و اکنون باید بتوانیم
113
00:05:56,939 –> 00:06:00,330
آن توابع را فراخوانی کنیم تا بتوانیم
114
00:06:00,330 –> 00:06:04,399
آن را در پایتون خالص انجام دهیم، اگر بگوییم fib 10
115
00:06:04,399 –> 00:06:07,499
میتوانیم c را نیز فراخوانی کنیم. نسخه -types بنابراین
116
00:06:07,499 –> 00:06:11,330
اگر فکر میکنیم که آن را c-types fib 10
117
00:06:11,330 –> 00:06:15,209
k مینامیم، میتوانیم همان پاسخ را دریافت کنیم،
118
00:06:15,209 –> 00:06:19,939
اما اعداد فیبوناچی با بزرگتر شدن،
119
00:06:19,939 –> 00:06:22,469
شما را آهستهتر میدانند،
120
00:06:22,469 –> 00:06:26,610
پس بیایید آن را با
121
00:06:26,610 –> 00:06:28,740
عدد 35 اجرا کنیم. میتوان دید که پیادهسازی c-types
122
00:06:28,740 –> 00:06:30,719
آن را نسبتاً سریع برمیگرداند،
123
00:06:30,719 –> 00:06:34,080
اما اگر بخواهم نسخه پایتون را اجرا
124
00:06:34,080 –> 00:06:36,539
کنم، در
125
00:06:36,539 –> 00:06:39,809
حالی که محاسبه میکند، اینجا مینشینیم تا بتوانید به
126
00:06:39,809 –> 00:06:42,330
صورت بصری آن را ببینید، زمان بیشتری طول کشیده است، میتوانیم از
127
00:06:42,330 –> 00:06:44,519
زمان ipython نیز استفاده کنیم- ماژول -it برای اینکه ببینید
128
00:06:44,519 –> 00:06:48,209
دقیقا چقدر بیشتر است، بنابراین اگر از
129
00:06:48,209 –> 00:06:51,469
زمان ماژول 2 استفاده کنیم زمانی که
130
00:06:53,189 –> 00:06:57,449
Phil با استفاده از ورودی 35 استفاده می کند،
131
00:06:57,449 –> 00:07:00,259
چند ثانیه بیشتر در اینجا
132
00:07:04,820 –> 00:07:08,930
به آن بدهید تا ماژول time-it یک سری
133
00:07:08,930 –> 00:07:11,840
حلقه ها را اجرا کند و بهترین سه مورد را بگیرد و
134
00:07:11,840 –> 00:07:13,490
تصمیم می گیرد که چه تعداد اجرا شود و آیا
135
00:07:13,490 –> 00:07:17,300
اجرای آن طولانی مدت طولانی است یا خیر. یکی از این رو
136
00:07:17,300 –> 00:07:18,950
در آنجا می توانید ببینید
137
00:07:18,950 –> 00:07:22,370
که محاسبه کردن سه نقطه شش پنج ثانیه طول کشید که
138
00:07:22,370 –> 00:07:26,060
در یک حلقه حالا بیایید ببینیم
139
00:07:26,060 –> 00:07:30,770
نسخه c-types چقدر سریع است، بنابراین ده
140
00:07:30,770 –> 00:07:33,710
حلقه اجرا شد و بهترین از این
141
00:07:33,710 –> 00:07:35,600
سه مورد یک میانگین ب