در این مطلب، ویدئو بحث: داستین اینگرام – تایپ استاتیک در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:21:49
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:04,740 –> 00:00:07,660
سلام.
2
00:00:07,660 –> 00:00:08,500
3
00:00:08,500 –> 00:00:10,540
4
00:00:10,540 –> 00:00:12,459
5
00:00:12,459 –> 00:00:14,920
6
00:00:14,920 –> 00:00:16,660
7
00:00:16,660 –> 00:00:18,790
از جمله
8
00:00:18,790 –> 00:00:20,860
فهرست بسته پایتون، اما امروز اینجا نیستم تا در
9
00:00:20,860 –> 00:00:22,960
مورد هیچ یک از
10
00:00:22,960 –> 00:00:24,250
آنها با شما صحبت کنم، در عوض، اینجا هستم تا در مورد تایپ استاتیک با شما صحبت
11
00:00:24,250 –> 00:00:25,720
کنم و میخواهم با یک مسابقه پاپ شروع کنم،
12
00:00:25,720 –> 00:00:29,259
بنابراین آیا پایتون به صورت پویا یا ایستا
13
00:00:29,259 –> 00:00:32,020
تایپ میشود، بنابراین شاید فکر کنید بله پایتون
14
00:00:32,020 –> 00:00:33,820
یک زبان تایپ پویا است، بنابراین به
15
00:00:33,820 –> 00:00:36,280
صورت پویا تایپ می شود، شاید فکر می کنید
16
00:00:36,280 –> 00:00:38,170
این یک بحث در مورد تایپ ایستا در پایتون
17
00:00:38,170 –> 00:00:40,960
است، احتمالاً به صورت ایستا تایپ شده است یا
18
00:00:40,960 –> 00:00:42,910
شاید فکر می کنید این در واقع یک سؤال حقه است
19
00:00:42,910 –> 00:00:45,430
و این یک سؤال حقه است،
20
00:00:45,430 –> 00:00:47,470
بنابراین پاسخ این است که پایتون را
21
00:00:47,470 –> 00:00:49,240
می توان به صورت پویا تایپ کرد اما به
22
00:00:49,240 –> 00:00:51,490
صورت اختیاری می تواند به همان اندازه ایستا تایپ شود که شما
23
00:00:51,490 –> 00:00:53,500
می خواهید و ممکن است این پاسخ
24
00:00:53,500 –> 00:00:54,850
برای شما منطقی نباشد و اگر اینطور نیست
25
00:00:54,850 –> 00:00:56,290
اشکالی ندارد که در حال تماشای
26
00:00:56,290 –> 00:00:58,570
صحبت صحیح این مراحل برای درک پاسخ به
27
00:00:58,570 –> 00:01:00,280
آن جستجو هستید. ابتدا باید در
28
00:01:00,280 –> 00:01:02,739
مورد انواع در پایتون صحبت کنیم، سپس سیستم ها را
29
00:01:02,739 –> 00:01:04,839
به طور کلی تایپ پویا در پایتون
30
00:01:04,839 –> 00:01:07,420
تایپ استاتیک در پایتون تایپ کنیم و بعد از
31
00:01:07,420 –> 00:01:08,860
اینکه فهمیدیم می توانیم در مورد نحوه
32
00:01:08,860 –> 00:01:11,229
استفاده از تایپ ایستا در زمانی که باید از
33
00:01:11,229 –> 00:01:12,970
تایپ ایستا استفاده کنید و همچنین شاید زمانی که شما باید از تایپ استاتیک استفاده کنید صحبت کنیم.
34
00:01:12,970 –> 00:01:15,370
نباید از تایپ استاتیک استفاده کرد، بنابراین بیایید در
35
00:01:15,370 –> 00:01:16,990
مورد انواع صحبت کنیم و به طور خاص
36
00:01:16,990 –> 00:01:19,300
در مورد نوع تعبیه شده در پایتون صحبت کنیم،
37
00:01:19,300 –> 00:01:22,750
بنابراین اگر نوع 42 را تایپ کنم
38
00:01:22,750 –> 00:01:25,030
کلاس پاسخ int دریافت کنم، می توانم تایپ را
39
00:01:25,030 –> 00:01:27,700
قبل از T 2.0 انجام دهم. کلاس float
40
00:01:27,700 –> 00:01:30,370
نوع foo کلاس رشته است و نوع foo
41
00:01:30,370 –> 00:01:32,590
and bar یک لیست کلاس است و ممکن است
42
00:01:32,590 –> 00:01:34,810
بگویید اوه من می دانم که اینها
43
00:01:34,810 –> 00:01:36,820
داخلی هایی هستند که می توانم از آنها برای تغییر یک
44
00:01:36,820 –> 00:01:38,950
نوع به نوع دیگر استفاده کنم و
45
00:01:38,950 –> 00:01:40,600
حق با شماست. ما میتوانیم یک متغیر a را
46
00:01:40,600 –> 00:01:43,600
برابر با 42 قرار دهیم و میتوانیم
47
00:01:43,600 –> 00:01:46,570
با فراخوانی float روی آن، آن را به یک float تبدیل کنیم و آن را
48
00:01:46,570 –> 00:01:48,729
به یک رشته بریزیم و سپس میتوانیم آن را به یک
49
00:01:48,729 –> 00:01:51,520
لیست واقعا زشت بریزیم، بنابراین شاید شما با یک
50
00:01:51,520 –> 00:01:53,290
اشکال عجیب و غریب در یک رشته مواجه شده باشید. در واقع
51
00:01:53,290 –> 00:01:54,880
به لیستی تبدیل شد که به نظر می رسد این
52
00:01:54,880 –> 00:01:57,549
حدس بزنید چه t hat یک خطای نوع است که شما
53
00:01:57,549 –> 00:01:59,560
در جای درستی هستید، به نظر می رسد
54
00:01:59,560 –> 00:02:01,210
اینها تنها انواعی هستند
55
00:02:01,210 –> 00:02:03,729
که مستقیماً در رشته شناور در دسترس ما هستند، اما اینها
56
00:02:03,729 –> 00:02:05,409
در واقع فقط کلاس هایی هستند که دارای داخلی های داخلی
57
00:02:05,409 –> 00:02:07,030
مربوطه در پایتون هستند،
58
00:02:07,030 –> 00:02:08,318
بنابراین اساساً ما در حال انجام تطبیق کلاس هستیم.
59
00:02:08,318 –> 00:02:09,519
در اینجا وقتی کاری انجام می دهیم
60
00:02:09,519 –> 00:02:12,519
in instance 42 in می بینیم که 42
61
00:02:12,519 –> 00:02:14,319
نمونه ای از کلاس int است int
62
00:02:14,319 –> 00:02:16,299
فقط داخلی است در اینجا کلاس های نوع دیگری نیز وجود دارند
63
00:02:16,299 –> 00:02:18,319
که مطابقت ندارند
64
00:02:18,319 –> 00:02:20,450
– توکارها مانند هیچ کدام تایپ کنید
65
00:02:20,450 –> 00:02:21,799
من مطمئن هستم که ما آنها را دریافت کرده ایم که در
66
00:02:21,799 –> 00:02:23,510
کد پایتون ما تعداد زیادی از آن ها خوب است هیچ نوع
67
00:02:23,510 –> 00:02:25,310
از نوع هیچ است اما ما از هیچ
68
00:02:25,310 –> 00:02:27,530
نوع برای توصیف آن
69
00:02:27,530 –> 00:02:30,109
استفاده نمی کنیم یک نوع تابع وجود دارد اما ما از تابع برای توصیف آن استفاده نمی
70
00:02:30,109 –> 00:02:33,019
کنیم. تعریف تابع ما می گوییم death func و
71
00:02:33,019 –> 00:02:35,269
غیره همچنین بسیاری از موارد دیگر
72
00:02:35,269 –> 00:02:37,430
مانند نوع بیضی وجود دارد و همه اینها
73
00:02:37,430 –> 00:02:39,620
مستقیماً با
74
00:02:39,620 –> 00:02:41,239
مکانی که ما آنها را از آن دریافت می کنیم مطابقت ندارد، اگر
75
00:02:41,239 –> 00:02:43,519
انواع را وارد کنیم می توانیم این لیست غول پیکر را دریافت
76
00:02:43,519 –> 00:02:45,379
کنیم انواعی که در دسترس
77
00:02:45,379 –> 00:02:47,090
ما هستند بسیاری از آنها در ty زندگی می کنند ماژول pes
78
00:02:47,090 –> 00:02:49,700
و همه اینها در واقع می توانند برای
79
00:02:49,700 –> 00:02:52,189
نمونه سازی یک نوع جدید استفاده شوند، به عنوان مثال یک
80
00:02:52,189 –> 00:02:53,510
تابع، ما می توانیم یک
81
00:02:53,510 –> 00:02:56,449
تابع جدید با نوع تابع open
82
00:02:56,449 –> 00:02:57,829
دوستان نزدیک با برخی از آرگومان ها در
83
00:02:57,829 –> 00:02:59,389
آنجا نمونه سازی کنیم، اما ما واقعاً این کار را انجام نمی دهیم و
84
00:02:59,389 –> 00:03:00,859
این برای یک کار خوب است. به این دلیل که در نهایت به
85
00:03:00,859 –> 00:03:02,599
نظر خیلی نامرتب می رسد، در عوض ما این کار را
86
00:03:02,599 –> 00:03:05,810
به روش معمولی با نام تابع def انجام
87
00:03:05,810 –> 00:03:07,639
می دهیم، بنابراین وقتی می گوییم پایتون دارای یک
88
00:03:07,639 –> 00:03:10,189
زبان تایپ پویا است، به این معنی است که
89
00:03:10,189 –> 00:03:11,810
اول از همه به این معنی است که متغیرها می توانند
90
00:03:11,810 –> 00:03:13,189
هر نوع باشند و اینکه نوع
91
00:03:13,189 –> 00:03:14,989
متغیر می تواند در طول
92
00:03:14,989 –> 00:03:17,269
زمان اجرای برنامه شما تغییر کند، به
93
00:03:17,269 –> 00:03:19,519
عنوان مثال در اینجا من می توانم تصادفی را وارد کنم و
94
00:03:19,519 –> 00:03:21,469
مقداری برابر با مقدار انتخاب تصادفی تنظیم
95
00:03:21,469 –> 00:03:23,599
کنم که شامل لیستی از سه چیز است:
96
00:03:23,599 –> 00:03:26,150
عدد صحیح 42 جریان 42 و رشته 42
97
00:03:26,150 –> 00:03:28,549
حالا اگر نوع a را بر روی نتیجه
98
00:03:28,549 –> 00:03:30,979
آن متغیر صدا بزنم چه نوع a است و
99
00:03:30,979 –> 00:03:32,389
پاسخ این است که ما نمی دانیم این
100
00:03:32,389 –> 00:03:34,250
غیر قطعی است، می تواند
101
00:03:34,250 –> 00:03:36,019
یک رشته باشد، می تواند یک عدد صحیح باشد یا
102
00:03:36,019 –> 00:03:37,549
می تواند یک شناور باشد. در چه رادیو
103
00:03:37,549 –> 00:03:39,979
این انتخاب برای انتخاب
104
00:03:39,979 –> 00:03:42,409
تایپ پویا همچنین به این معنی است که آرگومانها
105
00:03:42,409 –> 00:03:44,120
و انواع برگشتی یک تابع میتوانند
106
00:03:44,120 –> 00:03:46,340
در پایتون نیز هر نوع باشند، اگر
107
00:03:46,340 –> 00:03:48,349
تابعی مانند این را از نفی ABC بنویسیم
108
00:03:48,349 –> 00:03:51,049
و اگر ما یک تابع به علاوه B به اضافه C را برمیگردانیم.
109
00:03:51,049 –> 00:03:52,400
تابعی مانند این را بخوانید چگونه
110
00:03:52,400 –> 00:03:54,049
بفهمیم که انواع مورد انتظار را دریافت میکنیم،
111
00:03:54,049 –> 00:03:55,970
بنابراین اگر این تابع را حل
112
00:03:55,970 –> 00:03:58,220
کنید و نمیدانستید چه کار میکند
113
00:03:58,220 –> 00:03:59,720
، انتظار دارید که انواع آرگومان و بازگشت
114
00:03:59,720 –> 00:04:02,180
چگونه باشد، بنابراین ممکن است حدس بزنید که
115
00:04:02,180 –> 00:04:04,310
آنها اعداد صحیح هستند و درست کار میکنند،
116
00:04:04,310 –> 00:04:06,079
میتوانیم تقلب را با
117
00:04:06,079 –> 00:04:08,359
یک دو و سه نفی کنیم و
118
00:04:08,359 –> 00:04:10,359
نتیجه حاصل از مجموع آن سه عدد را برگردانیم،
119
00:04:10,359 –> 00:04:13,159
اما رشتههای بیپایان و اساساً
120
00:04:13,159 –> 00:04:15,439
هر چیز دیگری که از عملگر جمع پشتیبانی میکند در
121
00:04:15,439 –> 00:04:17,000
اینجا نیز درست است. می تواند
122
00:04:17,000 –> 00:04:18,289
سه رشته را به آن منتقل کند و در نهایت
123
00:04:18,289 –> 00:04:20,000
فقط تمام این سه رشته را به
124
00:04:20,000 –> 00:04:22,280
هم متصل می کند و آن مقدار را برمی گرداند که
125
00:04:22,280 –> 00:04:24,440
در اینجا نمی توانیم اعداد صحیح و
126
00:04:24,440 –> 00:04:26,690
رشته ها را با هم مخلوط کنیم تا نتوانیم یک
127
00:04:26,690 –> 00:04:29,000
دو را به عنوان اعداد صحیح و foo را به عنوان یک رشته
128
00:04:29,000 –> 00:04:31,400
بکا ارسال کنیم. استفاده از این یک خطای نوع است، ما نمیتوانیم
129
00:04:31,400 –> 00:04:32,210
از plus op
130
00:04:32,210 –> 00:04:35,060
برای ترکیب اعداد صحیح و رشتهها استفاده
131
00:04:35,060 –> 00:04:36,979
کنیم، به طوری که این تابع گیجکننده است
132
00:04:36,979 –> 00:04:39,800
چگونه میتوانیم آن را برطرف کنیم.
133
00:04:39,800 –> 00:04:42,380
134
00:04:42,380 –> 00:04:45,350
135
00:04:45,350 –> 00:04:47,000
پارامترها و نوع بازگشت
136
00:04:47,000 –> 00:04:49,160
تابع به این صورت است که اگر این کار را انجام دهید
137
00:04:49,160 –> 00:04:50,750
، از خود میپرسم که یک شرکت پیراهن
138
00:04:50,750 –> 00:04:52,160
به شما پول کافی برای انجام این کار را میپردازد، زیرا
139
00:04:52,160 –> 00:04:54,470
این کار بسیار زیادی است و در
140
00:04:54,470 –> 00:04:56,300
نهایت حتی
141
00:04:56,300 –> 00:04:57,740
هیچ کنترلی هم ندارد. در طول زمان اجرای
142
00:04:57,740 –> 00:04:59,690
برنامه ما درست است که این فقط یک سند
143
00:04:59,690 –> 00:05:01,130
است و مطمئن نمی شود که توسعه دهندگان
144
00:05:01,130 –> 00:05:03,350
ما واقعاً این تابع را با
145
00:05:03,350 –> 00:05:04,490
پارامترهای صحیحی که
146
00:05:04,490 –> 00:05:07,160
در رشته doc توضیح دادید فراخوانی
147
00:05:07,160 –> 00:05:09,050
می کنند، کار دیگری که می توانیم انجام دهیم این است که می توانیم بر
148
00:05:09,050 –> 00:05:11,210
روی انواع آرگومان ها تاکید کنیم و نوع بازگشتی
149
00:05:11,210 –> 00:05:12,500
هر چیزی که تابع ما را ارسال کرده
150
00:05:12,500 –> 00:05:14,449
است، بنابراین برای هر یک از پارامترها
151
00:05:14,449 –> 00:05:16,099
اظهار میکنیم که نوع
152
00:05:16,099 –> 00:05:18,080
مورد انتظار ما است که منطق تجاری خود را انجام
153
00:05:18,080 –> 00:05:20,360
دهیم و سپس مقدار مشخصی را در مورد
154
00:05:20,360 –> 00:05:23,419
مجدد اعمال میکنیم. تایپ کنید و سپس آن را برگردانید تا ما
155
00:05:23,419 –> 00:05:24,320
هم این کار را انجام ندهیم
156
00:05:24,320 –> 00:05:25,699
و در واقع یک بار قبلاً این سخنرانی را
157
00:05:25,699 –> 00:05:27,199
انجام دادم و گفتم هیچ کس این کار را انجام نمی دهد
158
00:05:27,199 –> 00:05:29,240
و یکی از مخاطبان خوب است
159
00:05:29,240 –> 00:05:31,280
بله در واقع ما این کار را انجام می دهیم و بنابراین در حالی که
160
00:05:31,280 –> 00:05:32,570
این کار درست است و این
161
00:05:32,570 –> 00:05:33,650
بررسی نوع است که مشکلاتی در آن
162
00:05:33,650 –> 00:05:36,199
وجود دارد، اول از همه،
163
00:05:36,199 –> 00:05:37,909
اینجا هر سال کمی سربار وجود دارد، مطمئناً
164
00:05:37,909 –> 00:05:39,979
باید اینجا انجام دهیم، برنامه ما را فقط کمی کند می کند
165
00:05:39,979 –> 00:05:42,139
و می توانید
166
00:05:42,139 –> 00:05:43,580
آن را در زمان اجرا بهینه کنید، اما اینطور
167
00:05:43,580 –> 00:05:45,860
نیست. مشکل دیگری که در اینجا رایج است این
168
00:05:45,860 –> 00:05:47,870
است که اگر فراموش کردید یک
169
00:05:47,870 –> 00:05:50,240
ادعا را درست بنویسید، برنامه شما
170
00:05:50,240 –> 00:05:53,210
برخی از بررسی های نوع را از دست داده است، بنابراین ما
171
00:05:53,210 –> 00:05:55,570
این کار را انجام نمی دهیم، در
172
00:05:55,570 –> 00:05:58,610
عوض آنچه انجام می دهیم به نام تایپ
173
00:05:58,610 –> 00:06:00,919
اردک به معنای تایپ اردک است. که اگر مثل اردک راه میرود
174
00:06:00,919 –> 00:06:02,900
و مثل اردک میچرخد،
175
00:06:02,900 –> 00:06:04,639
احتمالاً یک اردک است، بنابراین این بدان معناست که
176
00:06:04,639 –> 00:06:07,099
ما انواع یک تابع یا یک
177
00:06:07,099 –> 00:06:09,979
متغیر را بر اساس نحوه استفاده آن در هر یک
178
00:06:09,979 –> 00:06:11,750
از اینها تعیین میکنیم، میتوانید حدس بزنید که
179
00:06:11,750 –> 00:06:13,520
چه چیزی بر اساس آنچه است این کار با آن انجام می شود
180
00:06:13,520 –> 00:06:15,770
، بنابراین در نوار مثال اول به
181
00:06:15,770 –> 00:06:17,270
نوعی تکرارپذیر است، ممکن است یک لیست
182
00:06:17,270 –> 00:06:19,820
یا یک رشته باشد یا احتمالاً حتی یک دستور نباشد
183
00:06:19,820 –> 00:06:21,889
و foo یک درک لیست است، بنابراین
184
00:06:21,889 –> 00:06:22,909
185
00:06:22,909 –> 00:06:26,090
در نوار مثال دوم ظاهر می شود و یک لیست است.
186
00:06:26,090 –> 00:06:27,409
با صفر مقایسه میشود، بنابراین احتمالاً
187
00:06:27,409 –> 00:06:29,720
چیزی شبیه یک int یا float است و
188
00:06:29,720 –> 00:06:31,759
در مثال آخر کمی
189
00:06:31,759 –> 00:06:33,590
مبهم است در واقع درست است نوار یک
190
00:06:33,590 –> 00:06:35,690
تابع یا کلاس مانند آنچه foo gonna
191
00:06:35,690 –> 00:06:37,580
be here، در واقع میتواند
192
00:06:37,580 –> 00:06:40,070
هر چیزی باشد، پس حالا بیایید صحبت کنیم. در مورد
193
00:06:40,070 –> 00:06:42,169
تایپ ایستا معنی پشته تایپ زیرا در آن یک
194
00:06:42,169 –> 00:06:43,940
نوع متغیر تعریف شده است و
195
00:06:43,940 –> 00:06:45,590
قرار نیست تغییر کند و در واقع
196
00:06:45,590 –> 00:06:45,980
تعداد زیادی
197
00:06:45,980 –> 00:06:48,200
زبان تایپ شده به صورت ایستا وجود دارد در اینجا چند
198
00:06:48,200 –> 00:06:49,790
نمونه از همان تابعی است که ما
199
00:06:49,790 –> 00:06:53,030
فقط در آن زبان ها به آن نگاه می کنیم، بنابراین در اینجا
200
00:06:53,030 –> 00:06:56,300
یک مثال از از ساختن در C در
201
00:06:56,300 –> 00:06:58,130
اینجا در جاوا است، این یک هدیه مرده با یک
202
00:06:58,130 –> 00:07:00,400
استاتیک عمومی است، بلا بلا بله بله،
203
00:07:00,400 –> 00:07:03,350
این یکی زنگ زده است، می توانید آن را ذخیره کنید و بگویید
204
00:07:03,350 –> 00:07:04,670
زنگ زده است، زیرا زنگ واقعاً
205
00:07:04,670 –> 00:07:06,320
کنترل دقیقی بر انواع عدد صحیح
206
00:07:06,320 –> 00:07:08,330
t دارد. he u8 در اینجا یک عدد صحیح 8 بیتی بدون علامت است
207
00:07:08,330 –> 00:07:12,050
و این آخری
208
00:07:12,050 –> 00:07:14,420
209
00:07:14,420 –> 00:07:16,160
تایپ اسکریپت جاوا اسکریپت خود انواع ندارد اما تایپ اسکریپ یک پیاده سازی از نوع
210
00:07:16,160 –> 00:07:17,960
جاوا اسکریپت است و این یک هدیه مرده است
211
00:07:17,960 –> 00:07:20,360
که تایپ اسکریپت یا جاوا اسکریپت است زیرا
212
00:07:20,360 –> 00:07:23,270
در جاوا اسکریپت همه چیز تمام
213
00:07:23,270 –> 00:07:24,650
اعداد است. فقط با همان نوع آنها
214
00:07:24,650 –> 00:07:27,140
یک عدد هستند، بنابراین ما می توانیم زبان ها
215
00:07:27,140 –> 00:07:29,090
را به دو دسته قرار دهیم، ابتدا
216
00:07:29,090 –> 00:07:30,650
زبان های تایپ شده پویا و زبان های تایپ ایستا
217
00:07:30,650 –> 00:07:32,150
و باید یک
218
00:07:32,150 –> 00:07:33,710
ستاره کوچک در اینجا در کنار پایتون قرار دهیم زیرا
219
00:07:33,710 –> 00:07:35,330
محتوای این بحث این است و از نظر
220
00:07:35,330 –> 00:07:38,030
تکنیکی یاقوت
221
00:07:38,030 –> 00:07:39,650
وقتی Ruby
222
00:07:39,650 –> 00:07:42,230
3 اواخر امسال منتشر شد، میخواهم بررسی نوع استاتیک اختیاری را دریافت کنم، اما فعلاً
223
00:07:42,230 –> 00:07:44,690
آن را از لیست خارج میکنم، بنابراین قبلاً
224
00:07:44,690 –> 00:07:47,120
گفتم پایتون به صورت پویا تایپ میشود اما میتواند به
225
00:07:47,120 –> 00:07:48,950
صورت اختیاری به همان اندازه ایستا تایپ شود که شما
226
00:07:48,950 –> 00:07:51,080
میخواهید. توجه داشته باشید
227
00:07:51,080 –> 00:07:54,140
که این همیشه درست نبود و
228
00:07:54,140 –> 00:07:56,240
داستان تایپ استاتیک در پایتون نیز
229
00:07:56,240 –> 00:07:57,740
نوعی داستان تایپ استاتیک در
230
00:07:57,740 –> 00:08:00,530
Dropbox است Dropbox یک شرکت کوچک با
231
00:08:00,530 –> 00:08:01,970
آسیاب است. یونها و میلیونها خط
232
00:08:01,970 –> 00:08:04,130
کد پایتون و اساساً در مقطعی
233
00:08:04,130 –> 00:08:06,620
از تاریخ خود به این نتیجه رسیدند
234
00:08:06,620 –> 00:08:08,660
که داشتن این تعداد کد پایتون تایپنشده در
235
00:08:08,660 –> 00:08:10,190
واقع یک تعهد است که
236
00:08:10,190 –> 00:08:11,870
باعث کند شدن سرعت توسعهدهندگان آنها شده و کار
237
00:08:11,870 –> 00:08:13,520
را برای آنها سختتر میکند تا ویژگیهای جدید ایجاد کنند
238
00:08:13,520 –> 00:08:15,280
و کارهای واقعی را انجام دهند. توسعه
239
00:08:15,280 –> 00:08:17,000
اما موارد دیگری نیز وجود داشت که
240
00:08:17,000 –> 00:08:18,290
منجر به آن شد و من در اینجا در مورد آنها صحبت خواهم کرد
241
00:08:18,290 –> 00:08:20,930
. اولین
242
00:08:20,930 –> 00:08:23,660
حاشیهنویسی تابع pept 3107 بود که این را در سال 2006
243
00:08:23,660 –> 00:08:26,060
با پایتون 3 دریافت کردیم و اجازه دهید یک
244
00:08:26,060 –> 00:08:29,360
تابع مانند این بنویسیم و مقداری اضافی اضافه کنیم.
245
00:08:29,360 –> 00:08:32,120
ابرداده برای حاشیه نویسی آرگومان ها در
246
00:08:32,120 –> 00:08:34,610
مقدار بازگشتی تابع، بنابراین
247
00:08:34,610 –> 00:08:36,380
نکته ای که در اینجا باید به آن توجه کرد این است که این تاثیر صفر
248
00:08:36,380 –> 00:08:37,700
بر اجرای تابع دارد
249
00:08:37,700 –> 00:08:40,370
و ما می توانیم هر چیزی را که می خواهیم در آن قرار دهیم زیرا
250
00:08:40,370 –> 00:08:42,590
این حاشیه نویسی ها همه اینها
251
00:08:42,590 –> 00:08:44,660
یک ویژگی است. تابعی به نام
252
00:08:44,660 –> 00:08:46,250
حاشیهنویسی dunder که
253
00:08:46,250 –> 00:08:47,660
نتیجه ارزیابی همه این
254
00:08:47,660 –> 00:08:50,540
حاشیهنویسیها را به ما میدهد، بنابراین در اینجا X خواهد بود اگر YOU
255
00:08:50,540 –> 00:08:52,940
مجموع 5 و 6 باشد و به نظر میرسد 11
256
00:08:52,940 –> 00:08:54,770
لیست خالی و th باشد. نوع برگشتی
257
00:08:54,770 –> 00:08:58,040
9 خواهد بود، بنابراین هر چیزی که این تابع را کامپایل می کند
258
00:08:58,040 –> 00:08:59,660
یا این تابع را تفسیر می کند
259
00:08:59,660 –> 00:09:02,750
به این حاشیه نویسی ها دسترسی دارد، اما آنها نیستند،
260
00:09:02,750 –> 00:09:04,760
این شاید فوق العاده مفید نباشد و
261
00:09:04,760 –> 00:09:06,740
خود پپ به نوعی استفاده های زیادی را
262
00:09:06,740 –> 00:09:10,070
برای این حاشیه نویسی فهرست کرده است.
263
00:09:10,070 –> 00:09:12,110
خلاصه این که ما میتوانیم کاری انجام
264
00:09:12,110 –> 00:09:13,550
دهیم که شبیه تایپ استاتیک
265
00:09:13,550 –> 00:09:15,800
با این است و همچنین شاید بتوانیم
266
00:09:15,800 –> 00:09:17,450
برخی از اسناد را بچسبانیم، اما اساساً
267
00:09:17,450 –> 00:09:19,070
هدف این بود که کاری انجام دهیم که
268
00:09:19,070 –> 00:09:20,720
شبیه تایپ استاتیک است، بنابراین اگر به این موضوع فکر
269
00:09:20,720 –> 00:09:22,250
270
00:09:22,250 –> 00:09:23,660
کنیم، میتوانیم حاشیهنویسی بنویسیم. مانند این
271
00:09:23,660 –> 00:09:25,970
که در آن حاشیهنویسی خود
272
00:09:25,970 –> 00:09:28,160
نوع آرگومان مورد انتظار ما
273
00:09:28,160 –> 00:09:30,080
و نوع نوع بازگشتی است،
274
00:09:30,080 –> 00:09:32,060
اما هنوز این به ما هیچ راهی برای
275
00:09:32,060 –> 00:09:34,310
ارزیابی اینکه آیا این تابع در
276
00:09:34,310 –> 00:09:36,320
جاهای دیگر به درستی استفاده میشود یا خیر، هنوز هم فقط
277
00:09:36,320 –> 00:09:37,100
278
00:09:37,100 –> 00:09:38,990
آن را فراداده است نمیدهد. همچنین راهی برای تقلید از
279
00:09:38,990 –> 00:09:40,940
متغیرها به ما نمی دهد، ما فقط می توانیم توابع را حاشیه نویسی
280
00:09:40,940 –> 00:09:43,610
کنیم و آرگومان های آنها را برگردانیم، بنابراین
281
00:09:43,610 –> 00:09:45,950
تقریباً در همان زمانی که این حیوان خانگی با
282
00:09:45,950 –> 00:09:49,550
y نوشته شده است. اسلو یک کاندیدای دکترا
283
00:09:49,550 –> 00:09:51,440
در دانشگاه کمبریج در
284
00:09:51,440 –> 00:09:53,750
حال انجام تحقیقات دکترای خود بود و
285
00:09:53,750 –> 00:09:55,880
تحقیقاتش بر روی یکسان سازی
286
00:09:55,880 –> 00:09:57,500
زبان های تایپ ایستا و تایپ پویا بود که
287
00:09:57,500 –> 00:10:00,560
بسیار جالب به نظر می رسد او می خواست
288
00:10:00,560 –> 00:10:02,450
از یک زبان برای همه چیز استفاده کند،
289
00:10:02,450 –> 00:10:04,670
از یک خط بسیار کوچک گرفته تا یک چند زبانه گسترده.
290
00:10:04,670 –> 00:10:07,520
پایه کد خط و محققان او
291
00:10:07,520 –> 00:10:10,040
همچنین بر رشد تدریجی از
292
00:10:10,040 –> 00:10:11,540
یک نمونه اولیه تایپ نشده به یک
293
00:10:11,540 –> 00:10:13,190
محصول ایستا تایپ شده تمرکز کردند، به این معنی که شما مجبور
294
00:10:13,190 –> 00:10:14,630
نیستید همه این کارها را انجام دهید، بنابراین می توانید با
295
00:10:14,630 –> 00:10:16,790
برخی از قسمت های کوچک پایه کد خود که به
296
00:10:16,790 –> 00:10:19,130
صورت ایستا تایپ شده شروع کنید و به آرامی رشد کنید. و
297
00:10:19,130 –> 00:10:20,710
تایپ ایستا را به بقیه اضافه کنید پایه کد شما
298
00:10:20,710 –> 00:10:23,510
بسیار جالب به نظر می رسد، بنابراین او تحقیق خود را
299
00:10:23,510 –> 00:10:25,700
در سال 2011 منتشر کرد و پایان نامه او
300
00:10:25,700 –> 00:10:27,920
اساساً این بود که افزودن یک سیستم نوع استاتیک
301
00:10:27,920 –> 00:10:29,600
به یک زبان تایپ شده پویا
302
00:10:29,600 –> 00:10:31,490
می تواند یک تغییر گریز باشد که
303
00:10:31,490 –> 00:10:33,350
نیاز به اصلاح هماهنگ
304
00:10:33,350 –> 00:10:35,240
برنامه های موجود دارد. ماشینهای مجازی و
305
00:10:35,240 –> 00:10:37,910
ابزارهای توسعه، با این حال،
306
00:10:37,910 –> 00:10:39,710
سیستمهای نوع قابل اتصال اختیاری بر
307
00:10:39,710 –> 00:10:41,780
معنای زمان اجرا برنامه تأثیر نمیگذارند s و بنابراین
308
00:10:41,780 –> 00:10:43,790
میتوان آنها را بدون
309
00:10:43,790 –> 00:10:46,220
تأثیر بر روی کد و ابزارهای موجود به یک زبان اضافه کرد، این
310
00:10:46,220 –> 00:10:49,850
واقعاً عالی به نظر میرسد، بنابراین یک Pike on us در
311
00:10:49,850 –> 00:10:53,000
سال 2013 میتوانید mypie را معرفی کنید و اگر
312
00:10:53,000 –> 00:10:54,530
قبلاً در مورد پای من شنیدهاید،
313
00:10:54,530 –> 00:10:56,300
احتمالاً این چیزی نیست که فکر میکنید. در
314
00:10:56,300 –> 00:10:58,190
چکیده او میتوانید برخی از پای من را
315
00:10:58,190 –> 00:11:00,560
بهعنوان یک نوع آزمایشی از پایتون توصیف کنید
316
00:11:00,560 –> 00:11:02,300
که از نوشتن برنامههایی پشتیبانی میکند که
317
00:11:02,300 –> 00:11:04,040
318
00:11:04,040 –> 00:11:05,810
بهطور یکپارچه تایپ پویا و استاتیک
319
00:11:05,810 –> 00:11:07,820
320
00:11:07,820 –> 00:11:09,890
را با هم ترکیب میکنند. قادر به استفاده از یک
321
00:11:09,890 –> 00:11:11,270
زبان موجود برای تعیین چگونگی انجام این کار،
322