در این مطلب، ویدئو استوارت ویلیامز – Python Epiphanies – PyCon 2018 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:02,570 –> 00:00:06,450
آماده شروع ضبط شما در حال حاضر
2
00:00:06,450 –> 00:00:10,139
آماده هستید
3
00:00:10,139 –> 00:00:14,340
به پایتون خوش آمدید PyCon 2018
4
00:00:14,340 –> 00:00:17,670
در اینجا در کلیولند، لینک نظرسنجی را در اینجا مشاهده خواهید کرد
5
00:00:17,670 –> 00:00:19,650
، دانلودهای
6
00:00:19,650 –> 00:00:23,160
اسلایدها، جزوه ها، قطعه ای که من در اینجا نقل قول می کنم،
7
00:00:23,160 –> 00:00:25,710
اگر گاهی اوقات از پایتون استفاده می کنید احساس می کنید
8
00:00:25,710 –> 00:00:27,510
که یک خارجی هستید، شما مانند یک
9
00:00:27,510 –> 00:00:29,910
خارجی احساس می کنید، این احساس
10
00:00:29,910 –> 00:00:31,920
از نوع مخاطب هدفی است که من می خواستم
11
00:00:31,920 –> 00:00:33,030
با این کار به دست بیاورم و فکر می کنم
12
00:00:33,030 –> 00:00:34,350
خیلی خوب کار کرده است.
13
00:00:34,350 –> 00:00:36,630
14
00:00:36,630 –> 00:00:39,450
خوب همیشه
15
00:00:39,450 –> 00:00:42,090
نظرات خوبی دریافت کردهام. من یک
16
00:00:42,090 –> 00:00:44,430
معمار نرمافزار در کانادا
17
00:00:44,430 –> 00:00:46,379
18
00:00:46,379 –> 00:00:48,690
هستم.
19
00:00:48,690 –> 00:00:52,320
20
00:00:52,320 –> 00:00:53,730
این دوازدهمین PyCon من است که به صورت
21
00:00:53,730 –> 00:00:55,230
مخفیانه به سمت شما می آید و فکر می کنم
22
00:00:55,230 –> 00:00:57,449
23
00:00:57,449 –> 00:00:59,340
در یک دوره آموزشی 11 سال از آن سال ها به پیک یاد داده ام که آن را روی چیزی خالکوبی کند،
24
00:00:59,340 –> 00:01:01,649
اگر امسال را حساب کنید، من
25
00:01:01,649 –> 00:01:03,300
کارگاه های آموزشی پایتون انجام می دهم و در استارتاپ ها
26
00:01:03,300 –> 00:01:05,909
گاهی اوقات از راه دور یا از راه دور مربی می کنم. محلی در وینیپگ،
27
00:01:05,909 –> 00:01:09,270
جایی که من در حال حاضر از آنجا هستم، قبلاً از شما سؤالی پرسیده
28
00:01:09,270 –> 00:01:10,710
است و بنابراین ما
29
00:01:10,710 –> 00:01:12,930
از آن عبور خواهیم کرد که اجازه دهید در
30
00:01:12,930 –> 00:01:15,659
10 دقیقه اول
31
00:01:15,659 –> 00:01:18,479
کمی صحبت
32
00:01:18,479 –> 00:01:20,479
کنم. و فقط با من تحمل کنید،
33
00:01:20,479 –> 00:01:22,619
مخصوصاً کسانی از شما که از زبان هایی آمده اید که
34
00:01:22,619 –> 00:01:25,280
برخی از شما دستان خود را بالا برده
35
00:01:25,280 –> 00:01:27,659
اید و عادت دارید به روش خاصی به متغیرها فکر کنید
36
00:01:27,659 –> 00:01:29,610
، حتی اگر پایتون را
37
00:01:29,610 –> 00:01:31,020
به عنوان زبان اول خود یاد گرفته باشید، اگر
38
00:01:31,020 –> 00:01:33,869
چیزی در مورد علوم کامپیوتر خوانده باشید یا خودتان
39
00:01:33,869 –> 00:01:36,240
وبلاگها را بخوانید یا هر چیزی
40
00:01:36,240 –> 00:01:40,020
41
00:01:40,020 –> 00:01:43,680
که فکر میکنم معنی متغیرهایی را جذب کردهاند که فکر میکنم با
42
00:01:43,680 –> 00:01:45,659
پایتون با پایتون مفید نیست، متفاوت عمل میکند
43
00:01:45,659 –> 00:01:47,820
و اگر متوجه شوید که یک
44
00:01:47,820 –> 00:01:49,290
سری چیزها در پایتون بسیار واضحتر میشوند
45
00:01:49,290 –> 00:01:51,450
و این موضوعی است که من میگویم.
46
00:01:51,450 –> 00:01:53,820
برای آموزش یک دسته از روش های متوسط
47
00:01:53,820 –> 00:01:55,280
مت چیزهای پیشرفته در پایتون استفاده خو
48
00:01:55,280 –> 00:01:58,680
هم کرد، بنابراین برای انجام این کار، من با
49
00:01:58,680 –> 00:02:00,659
ستفاده از عباراتی که به
50
00:02:00,659 –> 00:02:03,299
نوان مثال از کلمه متغیر اجتناب می کنند، بسیار آهسته و با دقت صحبت می کنم، بنابراین 15 د
51
00:02:03,299 –> 00:02:05,070
یقه اول را اجرا نکنید. t ا
52
00:02:05,070 –> 00:02:06,930
اتاق با این حال سریعتر و جالب تر می شود،
53
00:02:06,930 –> 00:02:10,830
بنابراین متغیرها در ریاضیات یک
54
00:02:10,830 –> 00:02:12,510
متغیر چیزی است که مانند
55
00:02:12,510 –> 00:02:13,620
56
00:02:13,620 –> 00:02:15,989
اکثر زبان های برنامه نویسی جبر متفاوت است، یک متغیر
57
00:02:15,989 –> 00:02:18,900
کادری است که در حافظه تخصیص داده می شود،
58
00:02:18,900 –> 00:02:21,420
ما آن را به عنوان یک جعبه در نظر می گیریم و آنچه در آن وجود دارد. آن
59
00:02:21,420 –> 00:02:23,730
جعبه دارای یک نوع است که به عنوان بخشی از کامپایل تعریف شده است
60
00:02:23,730 –> 00:02:25,950
و نوع آن تعیین می کند
61
00:02:25,950 –> 00:02:28,470
که کدهای ماشینی واقعاً
62
00:02:28,470 –> 00:02:31,379
برای کار روی مقادیر موجود در آن جعبه صادر می شوند و بنابراین
63
00:02:31,379 –> 00:02:34,379
برای مثال اگر به این
64
00:02:34,379 –> 00:02:37,079
قطعه کوچک کد نگاه کنید، چیزی داریم که
65
00:02:37,079 –> 00:02:41,010
انجام می دهد. محاسبات ممیز شناور برای
66
00:02:41,010 –> 00:02:42,599
برگرداندن مربع چیزی و
67
00:02:42,599 –> 00:02:44,190
چیزی عدد صحیح را انجام می دهد، اگر آن دو را کامپایل
68
00:02:44,190 –> 00:02:45,959
کنید، در واقع می بینید که دستورالعمل های متفاوتی دریافت می کنید
69
00:02:45,959 –> 00:02:48,060
زیرا می داند که این یک
70
00:02:48,060 –> 00:02:49,530
شناور است که
71
00:02:49,530 –> 00:02:50,700
برای انجام ضرب ممیز شناور باید دستورالعمل متفاوتی صادر
72
00:02:50,700 –> 00:02:52,440
کند و پایتون های ضرب عدد صحیح را انجام
73
00:02:52,440 –> 00:02:55,560
نمی دهد. پس
74
00:02:55,560 –> 00:02:56,849
این روشی است که اکثر
75
00:02:56,849 –> 00:02:58,290
زبانهای برنامهنویسی که به صورت ایستا
76
00:02:58,290 –> 00:03:04,379
تایپ میشوند به صورت کامپایل شده کار میکنند، نه پایتون زمانی که
77
00:03:04,379 –> 00:03:06,269
شما یک تکلیف را در اکثر برنامهنویسی انجام میدهید.
78
00:03:06,269 –> 00:03:07,980
زبانهایی که در واقع
79
00:03:07,980 –> 00:03:09,780
مقدار آنچه را در آن مکان حافظه وجود دارد تغییر
80
00:03:09,780 –> 00:03:12,480
میدهید، آن بیتها را با بیتهای مختلف نادیده میگیرید.
81
00:03:12,480 –> 00:03:14,579
82
00:03:14,579 –> 00:03:18,269
83
00:03:18,269 –> 00:03:22,579
84
00:03:22,579 –> 00:03:25,889
آنها
85
00:03:25,889 –> 00:03:28,019
مقادیری هستند که در طول زمان تغییر می کنند، اما
86
00:03:28,019 –> 00:03:29,519
چیز دیگری نیستند که اکثر
87
00:03:29,519 –> 00:03:31,650
زبان های برنامه نویسی در زبان های برنامه نویسی دیگر هستند.
88
00:03:31,650 –> 00:03:33,900
89
00:03:33,900 –> 00:03:37,560
90
00:03:37,560 –> 00:03:39,840
91
00:03:39,840 –> 00:03:41,220
که یا حداقل مطمئن شوید که
92
00:03:41,220 –> 00:03:43,280
درک می کنید که چگونه به این روش فکر کنید،
93
00:03:43,280 –> 00:03:46,109
بنابراین من با بررسی اشیاء
94
00:03:46,109 –> 00:03:47,790
که چگونه آنها را ایجاد کردند، صحبت در مورد نام
95
00:03:47,790 –> 00:03:50,010
96
00:03:50,010 –> 00:03:52,139
97
00:03:52,139 –> 00:03:56,190
ها شروع می کنم. من از درون نگری زیادی استفاده خواهم کرد،
98
00:03:56,190 –> 00:03:58,650
حتی اگر چندین مکان به
99
00:03:58,650 –> 00:04:00,030
روشی که شما باید از آن استفاده کنید، اما آموزنده خواهد بود،
100
00:04:00,030 –> 00:04:01,859
امیدوارم و نمی دانم که
101
00:04:01,859 –> 00:04:03,690
آن را کاملاً به پایان خواهم رساند، دوست دارم اگر سوال
102
00:04:03,690 –> 00:04:05,129
را قطع کنید گاهی اوقات
103
00:04:05,129 –> 00:04:07,079
می گویم بعداً به صورت آفلاین پاسخ می دهم
104
00:04:07,079 –> 00:04:09,090
مانند بعد از آموزش یا در طول
105
00:04:09,090 –> 00:04:11,030
استراحت یا بعداً پاسخ داده می شود،
106
00:04:11,030 –> 00:04:13,590
اما به هر حال می خواهم این وقفه را بشنوم
107
00:04:13,590 –> 00:04:14,940
زیرا این به من بازخوردی می دهد که
108
00:04:14,940 –> 00:04:16,410
چگونه شما آنچه را که من دنبال می کنید را دنبال می کنید. من
109
00:04:16,410 –> 00:04:21,168
سعی می کنم هر سوالی را به شما آموزش دهم، خب،
110
00:04:21,168 –> 00:04:24,120
بیایید ببینیم که به هر حال به آنجا بروید، من همه چیز را درست انجام دادم،
111
00:04:24,120 –> 00:04:27,300
بنابراین در اینجا چند
112
00:04:27,300 –> 00:04:29,699
چیز اساسی خسته کننده وجود دارد و دوباره می
113
00:04:29,699 –> 00:04:34,110
خواهم خیلی آرام در مورد این خرس
114
00:04:34,110 –> 00:04:34,590
با من صحبت کنم،
115
00:04:34,590 –> 00:04:37,020
بنابراین همه چیز در پایتون حداقل یک شی باشد.
116
00:04:37,020 –> 00:04:39,360
زمان اجرا، ایجاد
117
00:04:39,360 –> 00:04:41,520
اشیا به نام هایی که
118
00:04:41,520 –> 00:04:44,039
به آن اشیاء متصل شده اند ارتباطی ندارد، اشیا در واقع
119
00:04:44,039 –> 00:04:47,190
حتی نام خود را نمی دانند، با
120
00:04:47,190 –> 00:04:48,509
استثناهایی که بعداً به شما نشان خواهم داد
121
00:04:48,509 –> 00:04:50,550
که راه های زیادی برای تغییر
122
00:04:50,550 –> 00:04:53,490
فضاهای نام وجود دارد، بنابراین ابتدا اجازه دهید نگاه کنیم و
123
00:04:53,490 –> 00:04:55,129
ببینید چه اتفاقی میافتد وقتی این
124
00:04:55,129 –> 00:04:57,960
خط کد را درست روی repple یا
125
00:04:57,960 –> 00:04:59,639
معادل حلقه چاپ خواندن eval اجرا میکنیم، بنابراین
126
00:04:59,639 –> 00:05:03,690
وقتی آن کاراکتر را وارد میکنم
127
00:05:03,690 –> 00:05:05,759
، رقم 1 به
128
00:05:05,759 –> 00:05:07,770
مفسر Python و Pyth ارسال میشود. در
129
00:05:07,770 –> 00:05:08,969
مفسر سعی میکند
130
00:05:08,969 –> 00:05:11,310
آن کد را تفسیر کند، همانطور که سعی میکند آن را تجزیه کند،
131
00:05:11,310 –> 00:05:14,009
آن را به بایت کد تبدیل کرده و
132
00:05:14,009 –> 00:05:16,110
درست اجرا کند، بنابراین میبیند که و
133
00:05:16,110 –> 00:05:18,330
میرود اوه یک عدد صحیح واقعی است 1،
134
00:05:18,330 –> 00:05:21,180
خاموش میشود و در حافظه یک شی ایجاد میکند
135
00:05:21,180 –> 00:05:23,879
که یک عدد صحیح را نشان می دهد و
136
00:05:23,879 –> 00:05:26,129
آن شی بسیار بیشتر از 64 بیت
137
00:05:26,129 –> 00:05:27,509
است، در واقع به خوبی نشان می دهد که بعداً خواهید دید که
138
00:05:27,509 –> 00:05:32,039
چقدر بزرگ است و در آن جاسازی
139
00:05:32,039 –> 00:05:34,289
کرده است و می داند که نوع
140
00:05:34,289 –> 00:05:36,120
مورد نظرش به اسنادش ارجاع دارد همه
141
00:05:36,120 –> 00:05:37,889
انواع چیزها در آن شی واحد
142
00:05:37,889 –> 00:05:41,009
که زمانی ایجاد می شود که شما فقط
143
00:05:41,009 –> 00:05:42,539
آن یکی را بزنید و البته ما در
144
00:05:42,539 –> 00:05:44,159
حلقه چاپ خواندن ارزش قرار می گیریم، بنابراین وقتی enter را فشار می دهیم
145
00:05:44,159 –> 00:05:46,919
146
00:05:46,919 –> 00:05:48,539
مقدار آن عبارت را نمایش می
147
00:05:48,539 –> 00:05:50,550
دهد که اگر شما یک را اجرا کنید این کار را نمی کند. برنامه و من
148
00:05:50,550 –> 00:05:55,250
می خواهم برگردم 1 واقعاً خسته کننده
149
00:05:55,250 –> 00:05:56,520
150
00:05:56,520 –> 00:05:57,960
نبود، اما مهم است بدانید که
151
00:05:57,960 –> 00:05:59,190
این همان چیزی است
152
00:05:59,190 –> 00:06:00,539
که وقتی این موارد را به درستی در پایتون اجرا می کنید اتفاق می افتد،
153
00:06:00,539 –> 00:06:02,909
بنابراین چه کارهای دیگری می توانیم به خوبی انجام دهیم، می توانیم
154
00:06:02,909 –> 00:06:04,500
شناور ایجاد کنیم و می توانیم ایجاد کنیم
155
00:06:04,500 –> 00:06:07,610
ادبیات رشته ای ls و لیست می کند، بنابراین در اینجا ما
156
00:06:07,610 –> 00:06:10,199
دوباره داریم که 1 ارزیابی می شود،
157
00:06:10,199 –> 00:06:13,560
یک شی عدد صحیح
158
00:06:13,560 –> 00:06:15,750
159
00:06:15,750 –> 00:06:18,090
ایجاد می کند.
160
00:06:18,090 –> 00:06:20,520
161
00:06:20,520 –> 00:06:22,560
ارجاعاتی به
162
00:06:22,560 –> 00:06:25,110
آن اشیا دارد و ما می توانیم فرهنگ لغت ایجاد کنیم که
163
00:06:25,110 –> 00:06:28,830
هر شی یک
164
00:06:28,830 –> 00:06:31,259
شناسه منحصر به فرد در cpython دارد که در واقع یک
165
00:06:31,259 –> 00:06:35,399
آدرس حافظه است که تضمینی برای
166
00:06:35,399 –> 00:06:36,930
همیشه درست بودن
167
00:06:36,930 –> 00:06:38,120
168
00:06:38,120 –> 00:06:40,190
آن وجود ندارد.
169
00:06:40,190 –> 00:06:42,530
من نسخههای دیگر پایتون را میدانم
170
00:06:42,530 –> 00:06:44,150
، این پیادهسازیهای پایتون هستند،
171
00:06:44,150 –> 00:06:50,660
همیشه آدرس حافظه نیست، هر
172
00:06:50,660 –> 00:06:52,400
شی تعدادی ویژگی دارد، بنابراین
173
00:06:52,400 –> 00:06:55,400
اگر مجدداً نقل قول کوچک رشته نقل قول را بگیریم،
174
00:06:55,400 –> 00:06:57,230
پایتون میبیند که میرود و یک
175
00:06:57,230 –> 00:06:59,360
شی رشته را ایجاد میکند، یک چیز بزرگ در حافظه که
176
00:06:59,360 –> 00:07:00,800
دارای آن است. قسمت کوچکی از آن که در
177
00:07:00,800 –> 00:07:04,450
واقع رشته بایت ها را نشان می دهد و سپس
178
00:07:04,450 –> 00:07:07,640
با یک نقطه به ویژگی آن دسترسی پیدا
179
00:07:07,640 –> 00:07:09,770
می کنیم و به
180
00:07:09,770 –> 00:07:11,930
فضای نامی که آن شی دارد i می پردازیم. به
181
00:07:11,930 –> 00:07:12,920
نوعی در مورد آن صحبت می
182
00:07:12,920 –> 00:07:16,400
کنیم و می بینیم که چه چیزی اشکالی ندارد، این یک
183
00:07:16,400 –> 00:07:18,620
نمایش از آن رشته است، متأسفم
184
00:07:18,620 –> 00:07:21,380
آن شی تابع بالایی که
185
00:07:21,380 –> 00:07:24,530
در واقع یک تابع جالب نیست، آن را به این صورت
186
00:07:24,530 –> 00:07:26,090
نشان می دهد، اما می توانیم آن را صدا
187
00:07:26,090 –> 00:07:28,850
بزنیم و دریافت می کنیم یک رشته جدید را به سمت راست برگردانید، بنابراین
188
00:07:28,850 –> 00:07:31,070
ما رشته را تغییر
189
00:07:31,070 –> 00:07:33,590
190
00:07:33,590 –> 00:07:36,710
191
00:07:36,710 –> 00:07:39,290
192
00:07:39,290 –> 00:07:41,900
193
00:07:41,900 –> 00:07:43,940
ندادیم. وقتی زیرخط زیرخط را میبینید،
194
00:07:43,940 –> 00:07:45,620
ما
195
00:07:45,620 –> 00:07:47,090
آن dunder را به صورت زیرخط دوتایی تلفظ میکنیم،
196
00:07:47,090 –> 00:07:49,540
بنابراین تعداد زیادی از dunder
197
00:07:49,540 –> 00:07:53,750
یک دسته ویژگیهای دیگر را در اینجا تعداد
198
00:07:53,750 –> 00:07:56,240
زیادی مشخص میکنند و تعداد زیادی از آنها هر شی
199
00:07:56,240 –> 00:07:58,700
یک نوع در پایتون دارد در آن نوع همانطور که
200
00:07:58,700 –> 00:08:00,110
گفتم در واقع در آن ذخیره میشود. خود شیء،
201
00:08:00,110 –> 00:08:03,830
بنابراین نوع 3.14 شناور است، اگر
202
00:08:03,830 –> 00:08:06,050
نوع را فراخوانی کنید، آن یک تابع مانند یک
203
00:08:06,050 –> 00:08:08,480
تابع عمل می کند و قابل فراخوانی است و
204
00:08:08,480 –> 00:08:10,460
نوع شی را به شما می گوید که من
205
00:08:10,460 –> 00:08:12,320
در واقع می توانم نگاه کنم و ببینم که درست
206
00:08:12,320 –> 00:08:14,330
در آنجا وجود دارد. ویژگی کلاس dunder
207
00:08:14,330 –> 00:08:17,180
روی شی ای که در آنجا
208
00:08:17,180 –> 00:08:20,980
شی 3.14 ایجاد شده است و به ما float را به سمت راست نشان می دهد،
209
00:08:20,980 –> 00:08:27,970
بنابراین می توانید انواع
210
00:08:27,970 –> 00:08:32,240
مختلف را در زیر کلاس انواع دیگر ببینید، بنابراین من می توانم از
211
00:08:32,240 –> 00:08:34,039
ماژول inspect استفاده کنم تا ترتیب وضوح متد را دریافت کنم
212
00:08:34,039 –> 00:08:37,339
و ببینم که 3.14
213
00:08:37,339 –> 00:08:39,530
نوع است. یک زیرکلاس شی در
214
00:08:39,530 –> 00:08:40,969
بالای سلسله مراتب برای همه کلاسهای
215
00:08:40,969 –> 00:08:45,320
پایتون برای همه اشیاء در پایتون قرار میگیرد، میتوانید
216
00:08:45,320 –> 00:08:47,630
ببینید که در واقع در این
217
00:08:47,630 –> 00:08:50,750
زیر ویژگیها ذخیره میشود، همانطور که
218
00:08:50,750 –> 00:08:52,760
219
00:08:52,760 –> 00:08:54,470
در صورتی که پایتون را نمیشناسید، میتوانید بهعنوان ترتیب وضوح روش، ترتیب وضوح روش.
220
00:08:54,470 –> 00:08:55,760
221
00:08:55,760 –> 00:08:57,050
وراثت چندگانه داشته باشد، بنابراین باید بفهمد که وقتی زنجیره را جستجو می کند، به
222
00:08:57,050 –> 00:08:58,900
کدام ترتیب می رود و به
223
00:08:58,900 –> 00:09:02,890
دنبال متدها می شود،
224
00:09:04,210 –> 00:09:08,180
بنابراین یکی برابر با یک در افت
225
00:09:08,180 –> 00:09:09,920
ایجاد می شود، دیگری ایجاد
226
00:09:09,920 –> 00:09:12,890
می شود برابری در برابر آنها اجرا می شود یا
227
00:09:12,890 –> 00:09:16,690
اجرا می شود که اساساً یک تابع وجود دارد و
228
00:09:16,690 –> 00:09:26,750
عاقلانه این است که به اطراف پرش کنید
229
00:09:26,750 –> 00:09:30,140
و کلاس آن نتیجه
230
00:09:30,140 –> 00:09:36,790
کلاس های پایه bool در کلاس پایه است که شی
231
00:09:36,790 –> 00:09:38,530
مشکلی ندارد
232
00:09:38,530 –> 00:09:41,660
و البته mro یا inspector یک
233
00:09:41,660 –> 00:09:43,040
شرط است. راهی برای انجام آن وجود دارد تا بتوانیم ببینیم که
234
00:09:43,040 –> 00:09:46,070
true و false نمونههایی از اشیاء
235
00:09:46,070 –> 00:09:48,410
کلاس bool هستند که زیر کلاس
236
00:09:48,410 –> 00:09:53,210
int است که زیر کلاس شی است، بسیار خوب است که یک
237
00:09:53,210 –> 00:09:54,800
دسته از اشیاء در واقع در هنگام راهاندازی وجود دارند،
238
00:09:54,800 –> 00:09:55,880
ما مجبور نیستیم آنها را ایجاد کنیم. با
239
00:09:55,880 –> 00:09:58,790
مواردی مانند true، بنابراین
240
00:09:58,790 –> 00:10:00,980
نام true وجود دارد و زمانی که ما
241
00:10:00,980 –> 00:10:03,050
دوباره به نام دسترسی پیدا می کنیم، مطمئناً دریافت می شود، بنابراین من در واقع
242
00:10:03,050 –> 00:10:06,260
وقتی تایپ true را در Python true
243
00:10:06,260 –> 00:10:07,970
می زنم، یک شی بر اساس آن ایجاد نمی
244
00:10:07,970 –> 00:10:10,790
کنم یا شاید یک شی ایجاد می کند اما نمی تواند به
245
00:10:10,790 –> 00:10:12,380
هر موردی فکر کنید که آیا واقعاً
246
00:10:12,380 –> 00:10:13,820
آن نام را میبیند و میگوید که شبیه
247
00:10:13,820 –> 00:10:15,380
یک شناسه است.
248
00:10:15,380 –> 00:10:17,450
249
00:10:17,450 –> 00:10:20,390
250
00:10:20,390 –> 00:10:21,860
شیء واقعی
251
00:10:21,860 –> 00:10:26,060
و دارای یک کلاس bool نامی است که
252
00:10:26,060 –> 00:10:28,450
شما می توانید به
253
00:10:33,579 –> 00:10:36,350
درستی به آن دسترسی پیدا کنید، بنابراین کلاس throughs
254
00:10:36,350 –> 00:10:38,420
همان کلاس مشابه است، بدیهی است که
255
00:10:38,420 –> 00:10:39,949
همان کلاس
256
00:10:39,949 –> 00:10:41,329
257
00:10:41,329 –> 00:10:43,610
است. برابر 1 است و برای
258
00:10:43,610 –> 00:10:46,399
برگرداندن شی Terr، شیئی که
259
00:10:46,399 –> 00:10:50,689
r است شناسه واقعی را نشان می دهد، بنابراین ایده
260
00:10:50,689 –> 00:10:54,019
کلاس trues این است که باید اینطور باشد، بنابراین من
261
00:10:54,019 –> 00:10:55,519
هر دوی این شناسه ها را نشان می دهم و می بینیم
262
00:10:55,519 –> 00:10:57,680
که بله آنها آدرس یکسانی دارند و
263
00:10:57,680 –> 00:10:59,600
بدیهی است که آنها برابر هستند، اما نه
264
00:10:59,600 –> 00:11:01,819
تنها برابرند بلکه با هم برابر هستند. همان
265
00:11:01,819 –> 00:11:04,480
حق شیء پس برابر برابری است یا
266
00:11:04,480 –> 00:11:08,269
هویت شیء و
267
00:11:08,269 –> 00:11:09,860
اگر شیئی داشته باشم به چه معناست هویت شیء
268
00:11:09,860 –> 00:11:11,689
البته با خودش یکسان است پس وقتی
269
00:11:11,689 –> 00:11:13,399
می گوییم برای هویت شیء است
270
00:11:13,399 –> 00:11:15,230
دو نام برای آن داریم یا دو راه برای بدست آوردن آن
271
00:11:15,230 –> 00:11:17,569
ارجاع به آن شیء، این
272
00:11:17,569 –> 00:11:19,939
ارجاعات ارجاعاتی به همان شیء هستند
273
00:11:19,939 –> 00:11:24,529
که در واقع هویت در مورد ok است
274
00:11:24,529 –> 00:11:28,040
که در دسته ای از انواع داخلی با نام ها ساخته شده است،
275
00:11:28,040 –> 00:11:31,339
بنابراین به عنوان مثال float بله، ما
276
00:11:31,339 –> 00:11:33,889
قبلاً آن یکی را دیدیم و می توانید ببینید
277
00:11:33,889 –> 00:11:37,959
که ویژگی کلاس و نام float
278
00:11:37,959 –> 00:11:43,100
به همان شی اشاره دارد، این
279
00:11:43,100 –> 00:11:44,569
راه درستی است برای بررسی اینکه آیا یک کلاس
280
00:11:44,569 –> 00:11:47,120
چیزی است یا نه، هرچند 3.14 نمونه ای از
281
00:11:47,120 –> 00:11:48,290
float است، دلیل اینکه
282
00:11:48,290 –> 00:11:50,329
بهتر است اجازه دهید کسی
283
00:11:50,329 –> 00:11:51,680
چیزی را به شما منتقل کند که شناور نیست اما
284
00:11:51,680 –> 00:11:52,970
زیر کلاس s of flow است و شما همچنان می خواهید
285
00:11:52,970 –> 00:11:55,660
کدتان کار کند اگر باید انواع را بررسی کنید،
286
00:11:55,660 –> 00:12:00,139
می توانیم به flow نگاه کنیم و mro بسیار
287
00:12:00,139 –> 00:12:04,519
خوب نوع یک نوع چیست و نوع آن با عرض پوزش
288
00:12:04,519 –> 00:12:05,899
برای سردرگمی وقتی که من با
289
00:12:05,899 –> 00:12:08,870
صدای بلند صحبت می کنم کلاس شناور است نوع و
290
00:12:08,870 –> 00:12:12,500
کلاس آن تایپ درست است، بنابراین یک نوع float یک
291
00:12:12,500 –> 00:12:14,480
زیر کلاس از نوع است که زیر کلاس
292
00:12:14,480 –> 00:12:19,939
شیء است، نوع را بعداً می بیند البته
293
00:12:19,939 –> 00:12:21,860
اگر ادامه دهید، فقط یک
294
00:12:21,860 –> 00:12:25,129
حلقه کوچک است.
295
00:12:25,129 –> 00:12:28,879
296
00:12:28,879 –> 00:12:30,649
که این یکی تابع یا
297
00:12:30,649 –> 00:12:33,680
روش داخلی است، یک MRO دارد که بسیار
298
00:12:33,680 –> 00:12:36,410
ساده است، فقط یک زیر کلاس از شی است، بنابراین
299
00:12:36,410 –> 00:12:39,309
به بررسی مراجعه کنید همه چیز یک شی است که
300
00:12:39,309 –> 00:12:42,170
هر شی دارای یک مقدار است یک نوع
301
00:12:42,170 –> 00:12:44,090
کلاس پایه ID منحصر به فرد و ویژگی
302
00:12:44,090 –> 00:12:47,900
هایی که می توانیم اشیاء دیگر را نیز صدا کنیم. بنابراین من
303
00:12:47,900 –> 00:12:49,340
وقتی اشیاء را فراخوانی میزنم تماس
304
00:12:49,340 –> 00:12:49,580
میگیرم،
305
00:12:49,580 –> 00:12:51,230
پس بیایید چند مورد را در اینجا بررسی
306
00:12:51,230 –> 00:12:53,930
کنیم، اگر وارد کردن sis انجام دهیم و یک عدد ref count
307
00:12:53,930 –> 00:12:57,770
روی آن انجام دهیم sis دریافت ref count، بنابراین گفتم که
308
00:12:57,770 –> 00:12:58,910
اشیا نام خود را نمیدانند.
309
00:12:58,910 –> 00:13:02,750
اشیاء به من اجازه می دهند که اشیا
310
00:13:02,750 –> 00:13:04,370
این کار را انجام نمی دهند بدانید که نامهایی وجود دارد
311
00:13:04,370 –> 00:13:07,340
سیستم زمان اجرا پایتون به خاطر میآورد که چند
312
00:13:07,340 –> 00:13:09,950
نام برای یک شی با
313
00:13:09,950 –> 00:13:12,020
شمارش صدا بوده است و شمارش ارجاعات
314
00:13:12,020 –> 00:13:13,310
در شی ذخیره میشود زیرا
315
00:13:13,310 –> 00:13:15,440
راحتترین مکان برای انجام این کار است، بنابراین میتوانم
316
00:13:15,440 –> 00:13:16,910
از پایتون بپرسم تعداد مراجع چقدر است.
317
00:13:16,910 –> 00:13:20,780
3.14 و این سه جالب است، سه
318
00:13:20,780 –> 00:13:26,180
است وقتی سه به جای یک می شود شما
319
00:13:26,180 –> 00:13:29,840
کمی بعداً کاوش خواهید کرد درست است بنابراین
320
00:13:29,840 –> 00:13:32,570
نام درست است بنابراین من هسته نوت بوک مشتری مفسر پایتون پایتون را اجرا می کنم
321
00:13:32,570 –> 00:13:33,980
322
00:13:33,980 –> 00:13:38,690
و در آن تمام
323
00:13:38,690 –> 00:13:41,080
لایه هایی که در حال اجرا هستند آنها را اجرا می کنم.
324
00:13:41,080 –> 00:13:44,630
وجود دارد، نام true در کدی وجود دارد
325
00:13:44,630 –> 00:13:48,200
که 3000 بار در حافظه بارگذاری شده است،
326
00:13:48,200 –> 00:13:50,690
بنابراین نام true وجود دارد 3000 مورد از
327
00:13:50,690 –> 00:13:52,430
آن نام ها در سیستم در حافظه
328
00:13:52,430 –> 00:13:58,160
ارجاع داده شده است که به آن شیء منفرد اشاره می کند که
329
00:13:58,160 –> 00:14:03,800
بسیار محبوب تر با 24000
330
00:14:03,800 –> 00:14:06,610
است. بیشتر
331
00:14:06,610 –> 00:14:10,760
فکر می کنید، اما نام های زیادی وجود ندارد
332
00:14:10,760 –> 00:14:13,190
که به
333
00:14:13,190 –> 00:14:14,480
شی واقعی اشاره می کنند، ارجاعات غیرمستقیم زیادی
334
00:14:14,480 –> 00:14:16,790
به آن وجود دارد، اما نام هایی که در حافظه وجود دارند و به
335
00:14:16,790 –> 00:14:19,040
آن اشاره می کنند وجود دارد. بالای
336
00:14:19,040 –> 00:14:20,840
آن سلسله مراتب بسیار کمتر از
337
00:14:20,840 –> 00:14:22,400
وجود کلمه هیچ از
338
00:14:22,400 –> 00:14:28,520
نام وجود ندارد، نام هیچ مشکلی ندارد، بنابراین تمام این
339
00:14:28,520 –> 00:14:30,430
عباراتی که من تایپ کرده ام مانند Len
340
00:14:30,430 –> 00:14:36,290
چه چیزی را برمی گرداند یک شی قابل فراخوان
341
00:14:36,290 –> 00:14:39,440
Len Len یک نام است آیا به آن ارجاع می دهید به
342
00:14:39,440 –> 00:14:41,630
یک شی که در حال پرش است،
343
00:14:41,630 –> 00:14:43,340
مرجع شیء به
344
00:14:43,340 –> 00:14:45,800
هر چیزی که توپ تصمیم می گیرد بنویسد تا
345
00:14:45,800 –> 00:14:48,770
قابل فراخوانی باشد، نام یک شی است که این
346
00:14:48,770 –> 00:14:50,300
شیء با ارسال آدرس حافظه در پشت صحنه به آن شی ارسال می شود
347
00:14:50,300 –> 00:14:51,560
348
00:14:51,560 –> 00:14:53,240
و آن چیز چیزی را به خوبی برمی گرداند.
349
00:14:53,240 –> 00:14:56,520
چه چیزی را برمی گرداند یک شیء
350
00:14:56,520 –> 00:14:58,630
خوب این تابع را فراخوانی کنید چه چیزی برگردانده می شود
351
00:14:58,630 –> 00:15:03,070
یک شی که یک شیء است
352
00:15:03,070 –> 00:15:05,650
متد wrapper لن یک شیء است
353
00:15:05,650 –> 00:15:07,270
همه چیز در پایتون یک شی
354
00:15:07,270 –> 00:15:12,310
در زمان اجرا است برخی از این اشیاء
355
00:15:12,310 –> 00:15:14,080
قابل فراخوانی هستند مانند int شما می توانید با
356
00:15:14,080 –> 00:15:16,690
فراخوانی من callable callable بررسی کنید ساده لوح
357
00:15:16,690 –> 00:15:19,270
یعنی خیلی شبیه یک تابع کار می کند اما
358
00:15:19,270 –> 00:15:20,440
چیزهای دیگری در
359
00:15:20,440 –> 00:15:22,870
پایتون وجود دارد که قابل فراخوانی هستند
360
00:15:22,870 –> 00:15:25,900
361
00:15:25,900 –> 00:15:29,740
. کلاسها بله شما
362
00:15:29,740 –> 00:15:31,360
کلاسها را نمونهسازی میکنید، بنابراین کلاسها
363
00:15:31,360 –> 00:15:34,780
قابل فراخوانی هستند و بنابراین تایپ کنید، به عنوان مثال این یک
364
00:15:34,780 –> 00:15:36,670
تابع است که یک کلاس نیز بسیار ضعیف است
365
00:15:36,670 –> 00:15:38,410
، حتی در
366
00:15:38,410 –> 00:15:40,060
مستندات پایتون به جای هم استفاده میشود،
367
00:15:40,060 –> 00:15:41,500
بله، تابع type را صدا بزنید،
368
00:15:41,500 –> 00:15:43,660
در واقع یک کلاس است، اما مهم نیست.
369
00:15:43,660 –> 00:15:44,980
مانند یک تابع رفتار می کند، یک تابع
370
00:15:44,980 –> 00:15:46,720
فراخوانی است، بنابراین مفهوم توپ تماس گیرنده و آنها
371
00:15:46,720 –> 00:15:47,830
در آنجا هستند، در واقع به شما نشان خواهم داد
372
00:15:47,830 –> 00:15:49,750
و بعداً قابل فراخوانی است به عنوان یک
373
00:15:49,750 –> 00:15:51,010
چیز کلی تر از یک تابع، یک تابع
374
00:15:51,010 –> 00:15:54,220
تعریف دقیق تری دارد،
375
00:15:54,220 –> 00:15:58,150
بنابراین من می تواند آن را بدون
376
00:15:58,150 –> 00:16:02,380
آرگومان فراخوانی کند، بنابراین int یک کلاس است، اما من آن را
377
00:16:02,380 –> 00:16:04,720
فراخوانی می کنم و مانند یک
378
00:16:04,720 –> 00:16:07,330
تابع که 3.14 را تبدیل می کند یا دقیقاً مانند یک
379
00:16:07,330 –> 00:16:09,130
کلاس متصل می شود، آنها قابل تغییر نیستند در این
380
00:16:09,130 –> 00:16:12,100
مورد، اگر من همه را فراخوانی کنم، همه چیز درست است.
381
00:16:12,100 –> 00:16:13,840
این ها با اکثر کلاس ها مبارزه می کنند، اگر
382
00:16:13,840 –> 00:16:15,580
آنها را بدون آرگومان فراخوانی کنید یا آنها را بدون آرگومان نمونه سازی
383
00:16:15,580 –> 00:16:16,990
کنید، به
384
00:16:16,990 –> 00:16:18,970
نوعی یک حالت پایه مانند یک دیکشنری خالی برمی گردند
385
00:16:18,970 –> 00:16:22,840
cetera true قابل فراخوانی نیست، بنابراین اگر
386
00:16:22,840 –> 00:16:25,380
بخواهم آن را فراخوانی کنم با خطا مواجه می شوم. که
387
00:16:25,380 –> 00:16:28,810
قابل فراخوانی نیست، اما اگر آن را
388
00:16:28,810 –> 00:16:31,690
بدون آرگومان بنامیم کلاس یا نوع bool،
389
00:16:31,690 –> 00:16:35,350
false 3.14 یک شناور است،
390
00:16:35,350 –> 00:16:38,020
مجموعه ای از ویژگی ها دارد، از جمله این ویژگی ها هنگام
391
00:16:38,020 –> 00:16:40,120
تست کردن ویژگی های مزدوج به
392
00:16:40,120 –> 00:16:43,600
نسبت هگزا emag واقعی، خیالی و
393
00:16:43,600 –> 00:16:45,940
واقعی به این دلیل است که پیچیده در واقع
394
00:16:45,940 –> 00:16:46,780
یک نوع در پایتون است،
395
00:16:46,780 –> 00:16:48,310
بنابراین بیایید آنچه را که در آنجا میبینید مهمان کنیم،
396
00:16:48,310 –> 00:16:51,610
بنابراین این یک متد
397
00:16:51,610 –> 00:16:55,990
پوشش دهنده است که قابل فراخوانی است، بنابراین 3.14 دارای
398
00:16:55,990 –> 00:17:00,010
یک متد dunder add است.
399
00:17:00,010 –> 00:17:02,350
400
00:17:02,350 –> 00:17:04,089
مطمئن هستم که
401
00:17:04,089 –> 00:17:06,670
آدرس شی ای است که در اینجا ایجاد شده
402
00:17:06,670 –> 00:17:09,760
است، بنابراین می توانم آن را
403
00:17:09,760 –> 00:17:13,810
امتحان کنید و نامش را بزنم که انتظار می رود یک آرگومان
404
00:17:13,810 –> 00:17:18,010
صفر شد تا کاملاً کار کند که در آگهی فروخته می
405
00:17:18,010 –> 00:17:19,990
شود، متدی است که در float شما یک
406
00:17:19,990 –> 00:17:23,680
متد را با ارسال آرگومان های گفته شده فراخوانی می کنید.
407
00:17:23,680 –> 00:17:25,869
سپس از شی ای که روی آن
408
00:17:25,869 –> 00:17:27,459
نامیده می شود به عنوان یکی از آرگومان های ضمنی استفاده می کند
409
00:17:27,459 –> 00:17:28,510
که وقتی آن را به این صورت
410
00:17:28,510 –> 00:17:32,230
می نویسید وقتی روشی را برای نقطه نویسی می نویسید، استفاده
411
00:17:32,230 –> 00:17:33,130
412
00:17:33,130 –> 00:17:39,040
413
00:17:39,040 –> 00:17:40,600
می کند. کلاه
414
00:17:40,600 –> 00:17:43,630
جالب است شما نمی توانید دو تا سه
415
00:17:43,630 –> 00:17:49,960
امتیاز یک چهار خوب اضافه کنید، اما
416
00:17:49,960 –> 00:17:52,120
در واقع به شکل دیگری اتفاق می افتد، بنابراین
417
00:17:52,120 –> 00:17:56,020
پایتون یک تبلیغ و روش های تبلیغ ما وجود دارد و بنابراین
418
00:17:56,020 –> 00:17:58,690
شما را مجبور به ایجاد هر دو
419
00:17:58,690 –> 00:18:00,820
طرف نمی کند، خوب می گوید اگر من نمی توانم آن را اضافه
420
00:18:00,820 –> 00:18:03,280
کنم، تبلیغ خود را به روش دیگری امتحان می کنم،
421
00:18:03,280 –> 00:18:08,830
به همین دلیل است که به خوبی نشان داده می شود، بنابراین
422
00:18:08,830 –> 00:18:10,870
در طول این آموزش چه کاری انجام خواهم داد،
423
00:18:10,870 –> 00:18:12,040
فراموش کردم الگویی
424
00:18:12,040 –> 00:18:13,900
را که قرار است انجام دهم را به شما بگویم که از آن شروع خواهم کرد. در حال نشان دادن یک
425
00:18:13,900 –> 00:18:15,340
سری چیزها به شما
426
00:18:15,340 –> 00:18:17,260
چند دقیقه وقت می دهم و معمولاً بین
427
00:18:17,260 –> 00:18:19,870
یک تا پنج است، بسیار کوتاه است و به
428
00:18:19,870 –> 00:18:22,240
شما اجازه می دهد چند تمرین را انجام دهید. من شدیداً به
429
00:18:22,240 –> 00:18:23,470
شما توصیه می کنم وقتی این
430
00:18:23,470 –> 00:18:25,630
تمرین ها را انجام می دهید فقط اینتر را خوب فشار ندهید
431
00:18:25,630 –> 00:18:26,740
به این نگاه کنید و بگویید خوب چه
432
00:18:26,740 –> 00:18:29,050
کاری انجام میدهد، فکر میکنم کند میشود،
433
00:18:29,050 –> 00:18:30,880
کمی در مورد آن فکر
434
00:18:30,880 –> 00:18:32,860
کنید و بعداً خیلی سختتر میشوند،
435
00:18:32,860 –> 00:18:34,120
تضمین میکنم که
436
00:18:34,120 –> 00:18:35,410
اگر شما این کار را انجام دهید، هیچکس نمیتواند آنها را خوب کند، میخواهم بعداً آن را بشنوم
437
00:18:35,410 –> 00:18:36,910
اگر واقعاً آن را دقیقاً پیشبینی کنید
438
00:18:36,910 –> 00:18:37,990
که هر چیز
439
00:18:37,990 –> 00:18:40,300
قرار است انجام دهد و خطاهای آنها در اینجا
440
00:18:40,300 –> 00:18:42,970
عمداً وارد می شوند، بنابراین وقتی اینتر را می زنید، یک shift
441
00:18:42,970 –> 00:18:44,230
enter را می زنید و به هر حال که این کار را انجام می دهید یک خطا دریافت می کنید، به
442
00:18:44,230 –> 00:18:46,330
این دلیل است که من آن را به این صورت بازی
443
00:18:46,330 –> 00:18:47,410
می کنم و می خواهم از خطا یاد بگیرید،
444
00:18:47,410 –> 00:18:48,820
پس پیام خطا را بخوانید و به “OK”
445
00:18:48,820 –> 00:18:49,660
فکر کنید.
446
00:18:49,660 –> 00:18:52,260
بله اینجا چه خبر است و بعد
447
00:18:52,260 –> 00:18:55,510
معمولاً وقتی حدود یک
448
00:18:55,510 –> 00:18:57,670
سوم کار شما تمام شد یا نیمی از شما تمام شد، شما را متوقف می
449
00:18:57,670 –> 00:18:59,740
کنم و ما ادامه می دهیم و آنهایی از شما
450
00:18:59,740 –> 00:19:01,270
که کار را تمام نکرده اید احساس بدی نداشته باشید این
451
00:19:01,270 –> 00:19:02,980
طبیعی است من دارم این کار را انجام میدهم برخی از افراد
452
00:19:02,980 –> 00:19:04,150
سریعتر از دیگران هستند، برخی افراد
453
00:19:04,150 –> 00:19:07,480
طولانیتر از سایرین از پایتون استفاده میکنند، بنابراین
454
00:19:07,480 –> 00:19:08,830
من منتظر نمیمانم تا همه تمام کنند، اما
455
00:19:08,830 –> 00:19:10,180
بعد از آن
456
00:19:10,180 –> 00:19:11,620
عبور میکنم و با هم از آن عبور میکنیم و من هر
457
00:19:11,620 –> 00:19:14,020
چیزی را توضیح دهید و به هر سوالی پاسخ دهید بسیار خوب، پس
458
00:19:14,020 –> 00:19:15,750
ادامه دهید و چند دقیقه
459
00:19:15,750 –> 00:19:19,840
وقت بگذارید و پنج تمرین بسیار پیچیده اول را اجرا
460
00:19:19,840 –> 00:19:20,970
461
00:19:20,970 –> 00:19:23,059
کنید،
462
00:21:00,330 –> 00:21:03,700
بنابراین حدود یک دقیقه
463
00:21:03,700 –> 00:21:04,960
دیگر زمان بیشتری برای این تمرین به شما می دهد تا مطمئن شوید که
464
00:21:04,960 –> 00:21:06,400
همه با اجرای کد به سرعت عمل می
465
00:21:06,400 –> 00:21:08,550
کنند.
466
00:21:19,520 –> 00:21:23,210
چند نفر خوب تمام کرده اند، به نظر می
467
00:21:23,210 –> 00:21:25,510
رسد حدود دو- یک سوم پس من ادامه می دهم
468
00:21:25,510 –> 00:21:31,850
خوب، بنابراین چه چیزهایی در اینجا یاد می گیریم به
469
00:21:31,850 –> 00:21:33,500
اندازه یک رشته که
470
00:21:33,500 –> 00:21:35,390
فکر می کنید یک بایت طول می کشد در واقع
471
00:21:35,390 –> 00:21:39,440
50 بایت است و اگر یک
472
00:21:39,440 –> 00:21:41,179
رشته سه تایی داشته باشید 53 بایت است بنابراین به نظر می رسد. مثل
473
00:21:41,179 –> 00:21:42,620
اینکه رشته در واقع
474
00:21:42,620 –> 00:21:44,419
در خود شی ذخیره میشود، ما میتوانیم از آن
475
00:21:44,419 –> 00:21:46,880
و آن 50 بایت دیگر استنباط کنیم، همه
476
00:21:46,880 –> 00:21:48,799
آن ویژگیها و موارد دیگر هستند که
477
00:21:48,799 –> 00:21:50,390
احتمالاً برخی از ویژگیها
478
00:21:50,390 –> 00:21:51,590
در آن ذخیره میشوند،
479
00:21:51,590 –> 00:21:54,500
بسیاری از آنها هستند یا ارجاعاتی
480
00:21:54,500 –> 00:21:58,390
به موارد دیگر هستند. چیزهایی بیایید اندازه خوب را بدست آوریم
481
00:21:58,390 –> 00:22:02,710
فقط چند چیز را کاوش کنیم
482
00:22:03,010 –> 00:22:08,919
، یک سوال در اینجا وجود داشت و آن این
483
00:22:08,919 –> 00:22:11,630
است که این پشت صحنه این است که
484
00:22:11,630 –> 00:22:14,179
پایتون چه کاری انجام می دهد و پاسخ این است که
485
00:22:14,179 –> 00:22:16,820
من می گویم این در پشت صحنه است
486
00:22:16,820 –> 00:22:18,830
که چگونه می توانید تغییر دهید. روشی که پایتون این
487
00:22:18,830 –> 00:22:22,039
کار را انجام می دهد و من چند
488
00:22:22,039 –> 00:22:23,630
نمونه را بعداً به شما نشان خواهم داد که در آن
489
00:22:23,630 –> 00:22:25,700
کد را به کد بایتی جدا می کنیم، بنابراین اگر یک
490
00:22:25,700 –> 00:22:30,140
متد dunder add را روی یک شی تعریف کنید،
491
00:22:30,140 –> 00:22:32,090
وقتی پایتون یک علامت مثبت دید، متد شما را
492
00:22:32,090 –> 00:22:33,950
فراخوانی می کند اما این کار را انجام نمی دهد. منظورم اون دروغه
493
00:22:33,950 –> 00:22:35,149
on همیشه آن متد را فراخوانی میکند،
494
00:22:35,149 –> 00:22:36,380
زیرا راههای کارآمدتری برای پایتون
495
00:22:36,380 –> 00:22:37,940
برای انجام این اضافه وجود دارد که این است که
496
00:22:37,940 –> 00:22:41,899
مستقیماً به کد بایت بروید، سؤالات دیگر بسیار
497
00:22:41,899 –> 00:22:46,610
خوب است، بنابراین در اینجا
498
00:22:46,610 –> 00:22:48,940
قسمت دوم است که میخواهیم سرعت را کاهش دهیم و
499
00:22:48,940 –> 00:22:52,130
سعی کنیم شما را به فکر وادار کنیم. و در مورد
500
00:22:52,130 –> 00:22:54,020
این به روش خاصی صحبت کنید، بنابراین نام ها
501
00:22:54,020 –> 00:22:56,720
در پایتون واقعاً اساسی هستند تقریباً هر
502
00:22:56,720 –> 00:22:58,070
شی با یک یا چند نام
503
00:22:58,070 –> 00:22:59,929
504
00:22:59,929 –> 00:23:01,820
505
00:23:01,820 –> 00:23:04,520
506
00:23:04,520 –> 00:23:07,070
شناخته می شود. 3000 فضای نام وجود دارد
507
00:23:07,070 –> 00:23:10,419
که در آن شیء nun وجود دارد که در آن نام nun
508
00:23:10,419 –> 00:23:12,860
وجود دارد و آن یک محدود به آن
509
00:23:12,860 –> 00:23:16,070
شیء واحد است.
510
00:23:16,070 –> 00:23:19,010
511
00:23:19,010 –> 00:23:21,080
512
00:23:21,080 –> 00:23:24,440
513
00:23:24,440 –> 00:23:25,940
به آن فکر کن مثل یک پست است که
514
00:23:25,940 –> 00:23:28,159
شما درست روی یک شی می گذارید، بنابراین من
515
00:23:28,159 –> 00:23:30,860
نام های متعددی دارم که بچه هایم مرا بابا صدا می کنند، بنابراین
516
00:23:30,860 –> 00:23:32,620
فقط یک پست را تصور کنید که می گوید بابا
517
00:23:32,620 –> 00:23:34,510
آن را درست روی این شیء بچسبانید من اسمم
518
00:23:34,510 –> 00:23:36,910
استوارت است، شما آن را بچسبانید. درست همانجا درست،
519
00:23:36,910 –> 00:23:40,870
بنابراین من حداقل دو نام
520
00:23:40,870 –> 00:23:42,130
دارم و آنها مانند پستهای روی یک شی
521
00:23:42,130 –> 00:23:43,900
هستند، در مورد آن فکر کنید من لی
522
00:23:43,900 –> 00:23:46,240
ویکام را داشتم همانطور که او میگوید این یک نام است،
523
00:23:46,240 –> 00:23:47,800
یک شی است که یک شی ندارد. یک نام
524
00:23:47,800 –> 00:23:49,690
و این نمودار ممکن است به درست فکر کردن در مورد آن کمک کند،
525
00:23:49,690 –> 00:23:52,840
بنابراین نام is به شی اشاره می
526
00:23:52,840 –> 00:23:54,610
کند نه برعکس، اشیا
527
00:23:54,610 –> 00:23:57,510
نام خود را نمی دانند، خوب است،
528
00:23:57,510 –> 00:23:59,920
بنابراین اگر بخواهیم نام ها را
529
00:23:59,920 –> 00:24:03,550
در فضای نام فعلی به خوبی ببینیم من. من
530
00:24:03,550 –> 00:24:06,790
ipython را در نوتبوک مشتری اجرا میکنم
531
00:24:06,790 –> 00:24:10,350
و آشغالهای زیادی وجود دارد، بنابراین من در
532
00:24:10,350 –> 00:24:17,200
عوض این کار را انجام میدهم و میخواهم
533
00:24:17,200 –> 00:24:19,059
چیزی را که نشان میدهد اساساً در
534
00:24:19,059 –> 00:24:20,470
فضای نام فعلی من سه
535
00:24:20,470 –> 00:24:21,760
ستون دارد و خالی است و در حال حاضر هیچ جادهای وجود ندارد.
536
00:24:21,760 –> 00:24:23,710
مقدار نام و
537
00:24:23,710 –> 00:24:27,550
آدرسی که در آن قرار دارد، پس بیایید با عدد
538
00:24:27,550 –> 00:24:29,080
زیر خط یک شروع کنیم تا پایتون عدد زیرخط یک را ببیند و
539
00:24:29,080 –> 00:24:30,550
بگوید که یک
540
00:24:30,550 –> 00:24:31,929
شناسه معتبر است، یک رشته واقعی
541
00:24:31,929 –> 00:24:35,170
نیست، بلکه یک لفظ شناور نیست، بنابراین
542
00:24:35,170 –> 00:24:36,640
من آن را در فضای نام فعلی که
543
00:24:36,640 –> 00:24:39,030
میتواند جستجو کنم آن را پیدا نمی کنم، بنابراین یک
544
00:24:39,030 –> 00:24:42,100
شماره خطای نام به من می دهد e شماره یک کاملاً
545
00:24:42,100 –> 00:24:46,120
تعریف نشده است، بنابراین اکنون این خط دقیقاً
546
00:24:46,120 –> 00:24:51,850
در اینجا می توانید بگویید که من شماره
547
00:24:51,850 –> 00:24:54,760
یک را به عدد صحیح 300 اختصاص می دهم، اما نمی خواهم
548
00:24:54,760 –> 00:24:56,440
فکر کنید آنچه می خواهم
549
00:24:56,440 –> 00:24:58,510
وقتی آن را به این شکل می گویید بدانید شاید این باشد.
550
00:24:58,510 –> 00:25:01,830
چیزی که در این آموزش شرق میگویم این است که
551
00:25:01,830 –> 00:25:05,050
پایتون عدد صحیح را میبیند 300، آن را
552
00:25:05,050 –> 00:25:07,210
ارزیابی میکند، یک شی عدد صحیح ایجاد میکند
553
00:25:07,210 –> 00:25:09,340
که نشاندهنده شی عدد صحیح
554
00:25:09,340 –> 00:25:13,270
300 است، سپس به عدد یک نگاه میکند
555
00:25:13,270 –> 00:25:14,679
و علامت مساوی را میبیند میگوید آه، این یک انتساب نام است
556
00:25:14,679 –> 00:25:15,580
یا در حداقل یک
557
00:25:15,580 –> 00:25:17,410
تکلیف شماره یک در سمت چپ
558
00:25:17,410 –> 00:25:19,570
شبیه یک نام است، بنابراین من میروم
559
00:25:19,570 –> 00:25:21,400
فضای نام فعلی را جستجو کرده و سعی میکنم آن نام را پیدا
560
00:25:21,400 –> 00:25:24,220
کنم و اگر نتوانستم یک نام به
561
00:25:24,220 –> 00:25:25,840
جفت مقدار کلید فضای نام در
562
00:25:25,840 –> 00:25:27,700
فرهنگ لغت اضافه کنم. من آن کلید را به
563
00:25:27,700 –> 00:25:29,230
فرهنگ لغت که فضای نام است اضافه
564
00:25:29,230 –> 00:25:31,750
می کنم و سپس آن نام را به آن شیء متصل می کنم
565
00:25:31,750 –> 00:25:33,640
و با تبدیل مقدار موجود در آن
566
00:25:33,640 –> 00:25:36,280
نگاشت، شیئی است که به
567
00:25:36,280 –> 00:25:38,410
خوبی ایجاد شده است، به همین دلیل است که ما این کار را نمی کنیم، به
568
00:25:38,410 –> 00:25:40,120
همین دلیل نسخه کوتاهتر را درست می گوییم.
569
00:25:40,120 –> 00:25:41,380
چون این اما تمام چیزهایی است
570
00:25:41,380 –> 00:25:43,420
که در حال انجام است و
571
00:25:43,420 –> 00:25:45,490
شما باید تا پایان آموزش بدانید
572
00:25:45,490 –> 00:25:47,110
وقتی می بینید که اوه بله، همه آن
573
00:25:47,110 –> 00:25:49,809
چیزها درست اتفاق می افتد، بنابراین وقتی ما این کار را انجام
574
00:25:49,809 –> 00:25:53,770
می دهیم خیلی چیزها اتفاق افتاد و
575
00:25:53,770 –> 00:25:56,770
اکنون ما ارزش شماره یک را داریم 300 و
576
00:25:56,770 –> 00:25:58,650
درست در یک مکان حافظه خاص قرار دارد،
577
00:25:58,650 –> 00:26:01,210
بنابراین یک نام ساده، یک عبارت
578
00:26:01,210 –> 00:26:03,610
عبارت، یک انتساب نام ساده
579
00:26:03,610 –> 00:26:05,980
است، عملیاتی بر روی یک شی
580
00:26:05,980 –> 00:26:07,540
نیست.
581
00:26:07,540 –> 00:26:09,130
582
00:26:09,130 –> 00:26:11,230
یک
583
00:26:11,230 –> 00:26:13,570
شی کاملاً جدید در حافظه وجود دارد، من یک
584
00:26:13,570 –> 00:26:14,980
قطعه جدید از حافظه را اختصاص دادم و چیزهایی را
585
00:26:14,980 –> 00:26:16,600
در آن قرار دادم و سپس با
586
00:26:16,600 –> 00:26:20,110
نام Okay به آن اشاره
587
00:26:20,110 –> 00:26:21,850
588
00:26:21,850 –> 00:26:29,559
کردم. حالا اگر بخواهم
589
00:26:29,559 –> 00:26:31,600
به شماره یک دسترسی داشته باشم
590
00:26:31,600 –> 00:26:34,170
خطای فضای نام دریافت نمیکنم یک خطای نام در عوض
591
00:26:34,170 –> 00:26:37,720
پایتون میبیند که جستجو میکند نام
592
00:26:37,720 –> 00:26:39,940
آن را پیدا میکند و شیئی را که
593
00:26:39,940 –> 00:26:42,490
به آن محدود شده است برمیگرداند و سپس مقدار آن را به من نشان میدهد.
594
00:26:42,490 –> 00:26:43,780
بیانی
595
00:26:43,780 –> 00:26:47,770
که خیلی کوتاهتر بود اجازه بدید آه این موظف به
596
00:26:47,770 –> 00:26:52,540
بله باشه باشه باشه پس پایتون
597
00:26:52,540 –> 00:26:54,580
متغیرهایی در ریاضیات داره من
598
00:26:54,580 –> 00:26:55,660
قبلا اینو گفتم پس اگه میخوای خوب بخونی بهت اجازه میدم بخونی
599
00:26:55,660 –> 00:26:58,360
تا در
600
00:26:58,360 –> 00:27:00,130
این مورد شماره یک چه اتفاقی می افته قبلا یک اسم باشه
601
00:27:00,130 –> 00:27:01,960
فضای نام فعلی نیز پایتون
602
00:27:01,960 –> 00:27:05,470
آن را میبیند و میگوید: «اوه، خوب، من
603
00:27:05,470 –> 00:27:09,340
میخواهم کدی که میگوید این نام را
604
00:27:09,340 –> 00:27:11,440
به آن شیء متصل کند و بنابراین آن
605
00:27:11,440 –> 00:27:13,720
را به سمت راست تغییر میدهد، فقط یک اشارهگر را تصور کنید که
606
00:27:13,720 –> 00:27:15,429
به شی 300 اشاره میکند، حالا
607
00:27:15,429 –> 00:27:17,470
نام شماره یک است. این به یک
608
00:27:17,470 –> 00:27:20,880
شی متفاوت در حافظه اشاره می کند، بسیار
609
00:27:20,880 –> 00:27:26,590
خوب و این فقط در صورتی است که
610
00:27:26,590 –> 00:27:27,790
بخواهید بعداً آن را بخوانید، اگر متوجه نشدید
611
00:27:27,790 –> 00:27:28,960
که من می گویم، تقریباً همان
612
00:27:28,960 –> 00:27:31,270
چیزی است، بنابراین بیایید ببینیم چه چیزی در حافظه وجود دارد،
613
00:27:31,270 –> 00:27:33,480
خب من مقدار متفاوت و
614
00:27:33,480 –> 00:27:41,350
شناسه متفاوتی دارم، بله شناسه متفاوت است، خوب،
615
00:27:41,350 –> 00:27:42,940
نمیدانم ایده متفاوتی خواهد بود
616
00:27:42,940 –> 00:27:44,290
یا نه، زیرا تمام تضمینهای پایتون
617
00:27:44,290 –> 00:27:49,450
این است که یک شناسه منحصربهفرد شماره دو
618
00:27:49,450 –> 00:27:54,760
برابر با شماره یک شماره یک خواهد بود که میتوانید
619
00:27:54,760 –> 00:27:56,169
نادیده بگیرید. آن نظر یکی از معدود مواردی است
620
00:27:56,169 –> 00:27:57,920
که باید انجام دادم که فراموش کردم برای
621
00:27:57,920 –> 00:28:01,160
خلاص شدن از شر شماره یک به بالا نگاه می شود و
622
00:28:01,160 –> 00:28:03,620
سپس آن شی به شماره دو محدود می شود،
623
00:28:03,620 –> 00:28:06,290
بنابراین اگر شماره دو نامگذاری شده است
624
00:28:06,290 –> 00:28:07,850
به همان چیزی که شماره یک به خوبی مقید شده است،
625
00:28:07,850 –> 00:28:11,150
پس شماره دو، بله، من
626
00:28:11,150 –> 00:28:14,060
می توانم به آن دسترسی داشته باشم، می توانم به آن دسترسی داشته باشم. و ما میتوانیم
627
00:28:14,060 –> 00:28:16,040
ببینیم که آنها یک شی هستند
628
00:28:16,040 –> 00:28:17,900
زیرا شناسههای آنها یکسان
629
00:28:17,900 –> 00:28:19,550
است، یعنی هویت شیء به این معنی است که
630
00:28:19,550 –> 00:28:21,110
آنها شناسه یکسانی دارند و چون شناسهها منحصربهفرد هستند،
631
00:28:21,110 –> 00:28:22,870
به این معنی است که آنها همان شی هستند،
632
00:28:22,870 –> 00:28:25,010
بنابراین من میتوانم نه تنها
633
00:28:25,010 –> 00:28:27,110
سؤال را بپرسم. شناسه های آنها چیست اما می
634
00:28:27,110 –> 00:28:29,300
توانم بگویم که آیا آنها یکسان هستند – این دو نام کاملاً
635
00:28:29,300 –> 00:28:32,660
به یک شی اشاره دارند بنابراین
636
00:28:32,660 –> 00:28:36,550
دیل شماره دو یک عملیات فضای نام است و
637
00:28:36,550 –> 00:28:40,070
قرار نیست شی
638
00:28:40,070 –> 00:28:41,270
را حذف کند بلکه نام را از
639
00:28:41,270 –> 00:28:47,420
فضای نام حذف می کند. شماره دو
640
00:28:47,420 –> 00:28:49,160
اشاره ای به شیء موجود در
641
00:28:49,160 –> 00:28:52,940
حافظه بود، آیا شیء حذف شده است، ما
642
00:28:52,940 –> 00:28:55,370
به خوبی نمی دانیم در این مورد ما می دانیم
643
00:28:55,370 –> 00:28:57,200
زیرا هنوز نام دیگری به آن محدود شده است
644
00:28:57,200 –> 00:28:59,000
، اما در حالت کلی، زمانی که
645
00:28:59,000 –> 00:29:01,790
شما حذف و حذف نام را انجام می دهید. شما نمی
646
00:29:01,790 –> 00:29:03,830
دانید چه زمانی پایتون نمیتوانید تضمین کنید
647
00:29:03,830 –> 00:29:05,810
که پایتون میخواهد یک شی را پاک کند،
648
00:29:05,810 –> 00:29:07,520
اگر ممکن است گاهی اوقات میدانید مانند
649
00:29:07,520 –> 00:29:08,930
این مورد، نمیدانیم نمیتواند این کار را انجام دهد،
650
00:29:08,930 –> 00:29:10,850
زیرا هنوز یک
651
00:29:10,850 –> 00:29:14,060
نام برای آن وجود دارد، بنابراین آخرین نام آن را نامگذاری کنید.
652
00:29:14,060 –> 00:29:15,920
نام از یک شی حذف می شود زمانی که
653
00:29:15,920 –> 00:29:18,200
همه post-
654
00:29:18,200 –> 00:29:19,910
it ها از بین بروند، پایتون می تواند آن شی را دور بیاندازد
655
00:29:19,910 –> 00:29:23,750
و از حافظه برای چیز دیگری استفاده مجدد کند.
656
00:29:23,750 –> 00:29:27,550
657
00:29:29,610 –> 00:29:37,260
658
00:29:37,260 –> 00:29:40,140
بنابراین، نوع شماره یک چیست،
659
00:29:40,140 –> 00:29:42,570
منظور شما از اینکه می گویید
660
00:29:42,570 –> 00:29:44,220
نوع شی ای است که شماره یک به آن
661
00:29:44,220 –> 00:29:47,670
مقید است چیست و بنابراین می توانیم این
662
00:29:47,670 –> 00:29:49,200
سوال را بپرسیم که نوع شی ای
663
00:29:49,200 –> 00:29:51,090
که شماره یک به آن مقید است چیست؟ از
664
00:29:51,090 –> 00:29:54,690
نوع int نوع شیء
665
00:29:54,690 –> 00:29:56,490
که شماره یک باید بداند که
666
00:29:56,490 –> 00:29:59,390
رشته ای از نوع درست است، بنابراین کسانی
667
00:29:59,390 –> 00:30:02,460
که با C++ یا جاوا یاد گرفتید، نمی توانید این کار را در
668
00:30:02,460 –> 00:30:04,500
پایتون انجام دهید، چون
669
00:30:04,500 –> 00:30:06,870
یک جعبه نیست و نوع آن نیست.
670
00:30:06,870 –> 00:30:08,280
ذخیره شده با نام نوع ذخیره شده
671
00:30:08,280 –> 00:30:11,430
با شی OK بنابراین t به همین دلیل است که
672
00:30:11,430 –> 00:30:13,170
پاسخی که من در
673
00:30:13,170 –> 00:30:15,720
سلول 105 و 107 سوال مشابهی پرسیده بودم، پاسخ های متفاوتی دریافت کرد،
674
00:30:15,720 –> 00:30:17,340
زیرا نام به یک شی متفاوت برگشت داده شده بود،
675
00:30:17,340 –> 00:30:21,180
بنابراین می
676
00:30:21,180 –> 00:30:22,970
توانم شماره یک
677
00:30:22,970 –> 00:30:25,860
بله را ببینم و مقدار آن از زمان تغییر ID
678
00:30:25,860 –> 00:30:28,050
تغییر کرده است. آن نام را از فضای نام خلاص کنید
679
00:30:28,050 –> 00:30:30,320
و چیزی باقی نمانده است،
680
00:30:30,320 –> 00:30:34,710
بنابراین ویژگیهای شیء atre نیز مانند
681
00:30:34,710 –> 00:30:37,440
دیکشنریها مانند فضای نام هستند، بنابراین
682
00:30:37,440 –> 00:30:40,800
بیایید ماژول type را وارد کنیم تا
683
00:30:40,800 –> 00:30:42,780
بتوانیم به کلاسهای فضای نام ساده انواع دسترسی داشته باشیم
684
00:30:42,780 –> 00:30:46,740
و آن را نمونهسازی کنیم، بنابراین
685
00:30:46,740 –> 00:30:48,030
من این را دریافت کردم. ارجاع به یکی از آن
686
00:30:48,030 –> 00:30:51,330
اشیاء در حال حاضر این همان چیزی است که به عنوان نشان داده می شود
687
00:30:51,330 –> 00:30:55,710
و یک دیکته dunder دارد و
688
00:30:55,710 –> 00:31:01,140
خالی است اگر نگاه کنم اینجا تکلیف را انجام
689
00:31:01,140 –> 00:31:05,010
می دهم، x1 و y2 را امضا می کنم
690
00:31:05,010 –> 00:31:07,740
، ویژگی X را به نام P متصل می کنم. یا
691
00:31:07,740 –> 00:31:08,970
شیئی را که ابتدا می خواهید
692
00:31:08,970 –> 00:31:11,370
دقیقاً به آن
693
00:31:11,370 –> 00:31:12,810
شیئی که ایجاد می شود
694
00:31:12,810 –> 00:31:15,300
متصل می کنم که همان float 1.0 و غیره است، بنابراین دو نام را در آنجا
695
00:31:15,300 –> 00:31:17,910
قید کردم و اکنون به فرهنگ لغت نگاه می کنم و
696
00:31:17,910 –> 00:31:20,340
می بینید که واقعاً فقط یک نام است.
697
00:31:20,340 –> 00:31:22,560
دیکشنری پس گفتم اسم ها n amespaces
698
00:31:22,560 –> 00:31:25,860
مانند یک دیکشنری چاه برای مثال
699
00:31:25,860 –> 00:31:27,870
مانند این یک فرهنگ لغت
700
00:31:27,870 –> 00:31:29,250
است، دقیقاً مانند اعتیاد است، تقریباً
701
00:31:29,250 –> 00:31:31,890
دقیقاً کلاس های ما کمی
702
00:31:31,890 –> 00:31:33,900
متفاوت هستند و سپس من البته می توانم
703
00:31:33,900 –> 00:31:36,620
به آن درست دسترسی داشته باشم
704
00:31:38,520 –> 00:31:42,510
تا کلاس ها بتوانند
705
00:31:42,510 –> 00:31:44,760
روش های دیگری را برای سفارشی کردن دسترسی به
706
00:31:44,760 –> 00:31:46,650
فواصل طولانی تعریف کنند. به آن نگاه میکنم، فکر میکنم
707
00:31:46,650 –> 00:31:50,429
اکنون کمی به آن نگاه میکنیم، بله
708
00:31:50,429 –> 00:31:51,690
خوب است، بنابراین اگر به فرهنگ لغت
709
00:31:51,690 –> 00:31:56,429
اینجا نگاه کنم، میتوانم ویژگیهای x و y را ببینم و
710
00:31:56,429 –> 00:31:59,160
میتوانم بررسی کنم که ویژگی X Z را به من بدهید
711
00:31:59,160 –> 00:32:00,510
و من متوجه نمیشوم. یک خطای فضای نام
712
00:32:00,510 –> 00:32:03,450
من یک خطای مشخصه کمی
713
00:32:03,450 –> 00:32:05,160
متفاوت از زمانی که
714
00:32:05,160 –> 00:32:07,830
نام سطح بالایی بود دریافت میکنم، اما میتوانم آن را اختصاص دهم و
715
00:32:07,830 –> 00:32:11,010
به خوبی کار میکند، مجموعه جمعکننده
716
00:32:11,010 –> 00:32:13,350
یک تابع داخلی است که به شما امکان میدهد
717
00:32:13,350 –> 00:32:15,300
همان کار را انجام دهید، اما با یک دلخواه مانند
718
00:32:15,300 –> 00:32:17,370
اینجا شما را در آبجکت
719
00:32:17,370 –> 00:32:20,040
ارسال می کنید، به این معنی که می توانید شی را با نام ارسال کنید، بنابراین
720
00:32:20,040 –> 00:32:26,760
می تواند یک متغیر باشد و همچنین
721
00:32:26,760 –> 00:32:29,010
یک افزودن یا متد dunder وجود دارد که می توانید آن را
722
00:32:29,010 –> 00:32:31,650
لغو کنید تا این کار روی
723
00:32:31,650 –> 00:32:35,760
اشیاء و همه موارد وجود دارد. آنها می خواهند انجام دهند
724
00:32:35,760 –> 00:32:37,200
او همان چیزی گفت که
725
00:32:37,200 –> 00:32:42,270
چهار دل جمع کننده را خواهد داشت که ما فکر می کنیم del adder انجام می دهد این
726
00:32:42,270 –> 00:32:44,850
است که شی را حذف می کند، نه این یک عملیات فضای نام است
727
00:32:44,850 –> 00:32:46,890
درست است، بنابراین del adder فقط
728
00:32:46,890 –> 00:32:50,010
نام را از فضای نام
729
00:32:50,010 –> 00:32:51,480
حذف می کند تا آن جفت مقدار کلید را حذف کند، اما
730
00:32:51,480 –> 00:32:52,890
ممکن است شی همچنان همگی باشد. اگر
731
00:32:52,890 –> 00:32:54,210
نام دیگری وجود داشته باشد که به آن اشاره دارد
732
00:32:54,210 –> 00:33:02,190
، همان del P dot y همه حق
733
00:33:02,190 –> 00:33:04,020
تخصیص دسترسی و حذف
734
00:33:04,020 –> 00:33:08,190
اشتراکها عملیات فضای نام نیستند
735
00:33:08,190 –> 00:33:10,830
، درخواستهایی برای شیئی
736
00:33:10,830 –> 00:33:13,380
که متد را بر روی آن فراخوانی میکنید برای انجام
737
00:33:13,380 –> 00:33:16,170
درست کاری وجود دارد و در اینجا آن موارد
738
00:33:16,170 –> 00:33:18,030
فراخوانیهایی به روشها هستند که آیتم del item یا
739
00:33:18,030 –> 00:33:19,410
دریافت آیتم را تنظیم کنید یا حداقل میتوانید فکر کنید که
740
00:33:19,410 –> 00:33:21,480
اگر اینها وجود ندارند، در غیر این صورت عملیات
741
00:33:21,480 –> 00:33:23,010
پایینتر اتفاق میافتد و من آن را در
742
00:33:23,010 –> 00:33:26,360
یک لحظه به شما نشان میدهم تا بتوانم بگویم یک فهرست
743
00:33:26,360 –> 00:33:30,990
به عنصر 0 یا نگاه کنید. می توانم به طور
744
00:33:30,990 –> 00:33:33,150
معادل بگویم که حروف dunder get item
745
00:33:33,150 –> 00:33:36,330
0 است و این کار را انجام می دهد، به این معنی که
746
00:33:36,330 –> 00:33:39,330
شما می توانید نسخه خود را از
747
00:33:39,330 –> 00:33:41,250
get item dunder get item بنویسید و
748
00:33:41,250 –> 00:33:45,330
نحوه رفتار را تغییر دهید، بنابراین قبلاً گفتم خوب اجازه دهید به
749
00:33:45,330 –> 00:33:46,830
شما نشان دهم که می خواهم Import آنها
750
00:33:46,830 –> 00:33:49,970
ماژول دیسک را جدا کردند من می خواهم به آن
751
00:33:49,970 –> 00:33:52,390
نگاه کنم که امیدوارم بتوانم این
752
00:33:52,390 –> 00:33:58,390
دو را به درستی روی صفحه نمایش بگذارم، پس آیا آنها
753
00:33:58,390 –> 00:34:00,370
واقعاً یکسان هستند و این
754
00:34:00,370 –> 00:34:02,140
به سؤال قبلی برمی گردد و نه آنها بارگذاری نمی شوند
755
00:34:02,140 –> 00:34:04,840
به نام load تابع فراخوانی خان
756
00:34:04,840 –> 00:34:09,280
نام ذخیره بار نام بار Const
757
00:34:09,280 –> 00:34:11,110
اشتراک باینری بنابراین در اولین موردی که
758
00:34:11,110 –> 00:34:13,090
در خط 12 داریم یک بایت کد اشتراک باینری داریم
759
00:34:13,090 –> 00:34:16,540
که در واقع اجرا می شود در
760
00:34:16,540 –> 00:34:19,389
حالت دیگر در واقع نامی
761
00:34:19,389 –> 00:34:21,399
را بارگذاری می کنیم که ویژگی get item را در
762
00:34:21,399 –> 00:34:23,980
هر شیئی که برمی گرداند بارگذاری می کنیم.
763
00:34:23,980 –> 00:34:25,449
برای فراخوانی بودن و ما یک فراخوانی روی آن
764
00:34:25,449 –> 00:34:28,540
درست انجام میدهیم، بنابراین اگر زیر
765
00:34:28,540 –> 00:34:29,980
مورد get را روی یک شی تعریف کرده باشید، در عوض آن را فراخوانی میکند،
766
00:34:29,980 –> 00:34:31,780
اما اگر این کار را نکنید، فقط
767
00:34:31,780 –> 00:34:38,889
اشتراک باینری را فراخوانی میکند
768
00:34:38,889 –> 00:34:45,250
– چند مورد دیگر از اینها درست است، بنابراین داندر گفت:
769
00:34:45,250 –> 00:34:49,239
آیتم اینجا یک دروازه است من با یک
770
00:34:49,239 –> 00:34:54,699
اشتراک یک قطعه متاسفم که شما می توانید
771
00:34:54,699 –> 00:34:59,050
در واقع با نام داخلی قطعه
772
00:34:59,050 –> 00:35:01,060
که به شی اشاره دارد،
773
00:35:01,060 –> 00:35:03,400
درست است، بنابراین وقتی شما پس وقتی
774
00:35:03,400 –> 00:35:06,220
دونقطه صفر منهای یک پایتون می بیند که آی تی خاموش می
775
00:35:06,220 –> 00:35:07,930
شود و یک شی slice ایجاد می
776
00:35:07,930 –> 00:35:09,070
کند که می توانید آن را مستقیماً
777
00:35:09,070 –> 00:35:14,190
با نام داخلی Slice ایجاد کنید و سپس
778
00:35:22,380 –> 00:35:24,299
درست کنید، بنابراین دوباره دو روش برای انجام همان
779
00:35:24,299 –> 00:35:27,630
کار به خوبی تقریباً یکسان است، من این دو را ویرایش می کنم
780
00:35:27,630 –> 00:35:30,420
تا بتوانید آن را در
781
00:35:30,420 –> 00:35:32,099
ipython تغییر دهید و می توانید ضربه بزنید. یک علامت سوال
782
00:35:32,099 –> 00:35:36,059
بعد از یک نام به شما کمک می کند تا همانطور
783
00:35:36,059 –> 00:35:38,519
که می بینید برش طول می کشد توقف می کند یا
784
00:35:38,519 –> 00:35:40,979
یک توقف طول می کشد شروع به توقف یا من شروع می کنم
785
00:35:40,979 –> 00:35:46,559
و در یک مرحله متوقف می شوم خوب بیایید به این نگاه
786
00:35:46,559 –> 00:35:49,619
کنیم من به شما می گویم که او برای
787
00:35:49,619 –> 00:35:51,509
هویت برابر با برابری است، بیایید
788
00:35:51,509 –> 00:35:53,819
کمی با آن بازی کنیم
789
00:35:53,819 –> 00:36:03,630
تا وقتی این را اجرا کردم، درست
790
00:36:03,630 –> 00:36:07,079
درست درست غلط غلط نادرست یا درست یا
791
00:36:07,079 –> 00:36:10,380
غلط درست درست است خوب یک B برابر است با یک B
792
00:36:10,380 –> 00:36:12,930
بنابراین درست خواهد بود که دومی چیست one
793
00:36:12,930 –> 00:36:14,999
gonna be is s و T آیا آنها
794
00:36:14,999 –> 00:36:20,420
به همان شیء متصل می شوند که می داند
795
00:36:20,420 –> 00:36:23,420
شما اشتباه می کنید شما نمی دانید که می داند
796
00:36:23,420 –> 00:36:27,900
هیچ کس نمی داند این موضوع بن در مورد آنچه پایتون
797
00:36:27,900 –> 00:36:29,489
در پشت صحنه انجام می دهد پاسخ من است
798
00:36:29,489 –> 00:36:33,900
پس پشت صحنه Python
799
00:36:33,900 –> 00:36:35,700
آزاد است تا آنچه را که می خواهد انجام دهد، اما
800
00:36:35,700 –> 00:36:38,160
قراردادی که پایتون دارای wi است نیست شما در مورد
801
00:36:38,160 –> 00:36:40,410
نحوه مدیریت رشتهها شامل این رفتار نمیشود،
802
00:36:40,410 –> 00:36:42,059
بنابراین
803
00:36:42,059 –> 00:36:43,469
پیادهسازیهای مختلف پایتون را اجرا میکنید، ممکن است
804
00:36:43,469 –> 00:36:47,640
رفتار متفاوتی داشته باشید، در این مورد بله
805
00:36:47,640 –> 00:36:50,130
درست است، اگر فاصلهای
806
00:36:50,130 –> 00:36:53,719
بین a و B قرار دهیم و همان کار را انجام دهیم،
807
00:36:53,719 –> 00:36:58,469
در غیر این صورت بدون تغییر درست نادرست. بسیار خوب،
808
00:36:58,469 –> 00:37:02,039
پس دلیلی وجود دارد که نمی توانید به آن تکیه کنید این است که به
809
00:37:02,039 –> 00:37:03,989
این معناست که واقعاً برابر است،
810
00:37:03,989 –> 00:37:05,880
این به این معنی نیست که به این معنی است که همان شیء است،
811
00:37:05,880 –> 00:37:11,420
درست است در مورد اعداد صحیح
812
00:37:15,850 –> 00:37:19,270
به طور مشابه نمی توان تضمین درستی داشت
813
00:37:19,270 –> 00:37:22,100
و این یکی بعداً پورتال به نظر می رسد خوب
814
00:37:22,100 –> 00:37:25,970
من خیلی زود فکر کنید و
815
00:37:25,970 –> 00:37:28,040
توضیحی برای این که چرا متفاوت است وجود دارد و
816
00:37:28,040 –> 00:37:31,610
من به شما نشان خواهم داد که اگر
817
00:37:31,610 –> 00:37:32,870
میخواهید بدون نگاه کردن به کد C در اطراف بازی کنید
818
00:37:32,870 –> 00:37:35,330
، خوب فقط بروید کتهای C را راحتتر نگاه کنید،
819
00:37:35,330 –> 00:37:36,710
اما این یک نوع سرگرمکننده است که میتوانیم
820
00:37:36,710 –> 00:37:38,240
در پایتونها بررسی کنید شاید متوجه شوید که
821
00:37:38,240 –> 00:37:41,660
مانند جستجوی سرنخهایی است که کدام اعداد صحیح در
822
00:37:41,660 –> 00:37:44,750
پایتون برای کارایی از قبل تخصیص داده شدهاند
823
00:37:44,750 –> 00:37:46,940
و من میتوانم بدون نگاه کردن به کد c استنباط کنم
824
00:37:46,940 –> 00:37:53,500
که پاسخ از 5- تا 256 است
825
00:37:53,500 –> 00:37:55,970
زیرا آدرسها بسیار
826
00:37:55,970 –> 00:38:01,360
متفاوت هستند. خارج از آن محدوده خوب است، من
827
00:38:01,360 –> 00:38:03,320
نمی توانم تضمین کنم که این همان چیزی است که در حال رخ دادن است،
828
00:38:03,320 –> 00:38:04,700
اما شما می توانید آن را فقط با نگاه درست به آن پی ببرید،
829
00:38:04,700 –> 00:38:07,970
بنابراین با تخصیص پیش از
830
00:38:07,970 –> 00:38:12,590
تخصیص عدد صحیح 1 پایتون سریعتر اجرا می شود
831
00:38:12,590 –> 00:38:16,850
زیرا نام های زیادی وجود دارد که
832
00:38:16,850 –> 00:38:18,560
ارجاعات زیادی برای آن وجود دارد. مقدار زیادی
833
00:38:18,560 –> 00:38:19,820
از حافظه برای مثال در صفر آسیب دیده
834
00:38:19,820 –> 00:38:24,290
و همه آن حافظه های دیگر که
835
00:38:24,290 –> 00:38:25,340
در واقع می توانید به تفاوت
836
00:38:25,340 –> 00:38:28,060
بین چند مکان حافظه نگاه کنید
837
00:38:28,060 –> 00:38:30,290
تقریباً به اندازه یک شی
838
00:38:30,290 –> 00:38:35,840
int خواهد بود که به سمت بالا جمع شده است.
839
00:38:35,840 –> 00:38:43,520
آنها را در این
840
00:38:43,520 –> 00:38:45,440
خط متفاوت انجام دهید در مقابل
841
00:38:45,440 –> 00:38:46,640
گفته های متفاوت در اینجا چه تفاوتی دارد اوه من انجام دادم یک I
842
00:38:46,640 –> 00:38:49,700
برابر است با J برابر است با 500 بنابراین من برابر هستم J برابر با
843
00:38:49,700 –> 00:38:53,360
500 به این معنی است که من می خواهم هم I و هم J
844
00:38:53,360 –> 00:38:55,820
ارجاعاتی به یک شی خاص باشند
845
00:38:55,820 –> 00:38:57,290
، بنابراین شما می توانید تضمین کنید که
846
00:38:57,290 –> 00:38:59,720
در هر
847
00:38:59,720 –> 00:39:03,080
پیادهسازی پایتون اینطوری کار میکند، اولین موردی
848
00:39:03,080 –> 00:39:04,160
که نمیتوانید انجام دهید، زیرا فقط
849
00:39:04,160 –> 00:39:05,450
چندین عبارت در یک خط را در
850
00:39:05,450 –> 00:39:08,810
همان خط قرار میدهید، خوب، اجازه دهید در واقع نگاه کنیم
851
00:39:08,810 –> 00:39:10,820
و ببینیم که به چه چیزی تبدیل میشود. از نظر
852
00:39:10,820 –> 00:39:13,930
بایت کد در پشت صحنه
853
00:39:18,519 –> 00:39:21,769
متأسفم، بنابراین بارگذاری
854
00:39:21,769 –> 00:39:23,299
در حالت ایستاده است، سپس ما یک نام فروشگاه برتر فریبنده داریم
855
00:39:23,299 –> 00:39:25,160
نام فروشگاه در مقابل بارگذاری شروع
856
00:39:25,160 –> 00:39:26,779
بارگذاری نام فروشگاه نام فروشگاه مانند این است
857
00:39:26,779 –> 00:39:29,539
که این کار را انجام می دهد اساساً کپی کردن
858
00:39:29,539 –> 00:39:31,819
قسمت بالایی است. به این معنی نیست که آن را کپی می
859
00:39:31,819 –> 00:39:33,679
کند، یک عدد صحیح جدید 500 ایجاد می کند، اما می گوید نه
860
00:39:33,679 –> 00:39:35,239
هر چیزی که وجود دارد، یک
861
00:39:35,239 –> 00:39:37,160
مرجع دیگر به انرژی به من بدهید
862
00:39:37,160 –> 00:39:38,989
و هر دوی آنها ذخیره می شوند تا بتوانید
863
00:39:38,989 –> 00:39:40,279
پشت صحنه را ببینید که این فقط یکی است که
864
00:39:40,279 –> 00:39:45,920
نشانگرها را ذخیره می کند، پس چرا آیا من
865
00:39:45,920 –> 00:39:47,599
کد بایتی را به شما نشان می دهم که چرا این همه
866
00:39:47,599 –> 00:39:50,269
چیز را در پشت صحنه به شما می گویم، فکر می کنم اگر می
867
00:39:50,269 –> 00:39:51,739
خواهید در هر
868
00:39:51,739 –> 00:39:52,809
لایه خاصی از انتزاع
869
00:39:52,809 –> 00:39:54,859
به ویژه در فناوری کار کنید، اما احتمالاً در
870
00:39:54,859 –> 00:39:56,959
موارد دیگر نیز واقعاً به
871
00:39:56,959 –> 00:39:58,429
درک حداقل برخی از موارد کمک می کند. آنچه
872
00:39:58,429 –> 00:40:00,679
در زیر لایه پایینی به
873
00:40:00,679 –> 00:40:02,630
سمت راست می گذرد، بنابراین ما به نوعی
874
00:40:02,630 –> 00:40:05,209
به زیر کاپوت
875
00:40:05,209 –> 00:40:06,619
یا پشت پرده نگاه می کنیم و سعی می کنیم
876
00:40:06,619 –> 00:40:07,549
بفهمیم چه خبر است و این
877
00:40:07,549 –> 00:40:09,979
به ما کمک می کند مطمئن شوید که ما یک
878
00:40:09,979 –> 00:40:11,449
مدل ذهنی دقیقتر از نحوه عملکرد
879
00:40:11,449 –> 00:40:14,509
واقعی آن داریم و بعد از آن
880
00:40:14,509 –> 00:40:15,979
با
881
00:40:15,979 –> 00:40:17,119
پایتون عاقلانه که این کار را انجام میدهد آنقدر گیج نمیشویم که این کار باعث میشود
882
00:40:17,119 –> 00:40:18,949
چیزها معنیتر پیدا کنند،
883
00:40:18,949 –> 00:40:20,329
تجربه من بوده و امیدوارم
884
00:40:20,329 –> 00:40:23,839
مال شما باشد، پس تمرین کنید. چند دقیقه
885
00:40:23,839 –> 00:40:26,890
وقت بگذارید و چند تمرین انجام دهید
886
00:42:03,350 –> 00:42:05,240
سوال من یک سوال داشتم این است که
887
00:42:05,240 –> 00:42:08,360
چه چیزی در واقع به خوبی انجام نمی دهد.
888
00:42:08,360 –> 00:42:11,690
889
00:42:11,690 –> 00:42:13,340
890
00:42:13,340 –> 00:42:16,220
891
00:42:16,220 –> 00:42:18,020
با کد، کد بایت را می گیرد
892
00:42:18,020 –> 00:42:19,730
و آن را به یک
893
00:42:19,730 –> 00:42:21,110
نمایش رشته ای از کد بایت تبدیل می کند که می
894
00:42:21,110 –> 00:42:24,110
توانید آن را بخوانید و به همین دلیل است که درست از
895
00:42:24,110 –> 00:42:25,910
هم جدا می شود زیرا پایتون در
896
00:42:25,910 –> 00:42:26,990
واقع در حال کامپایل کردن است، ما
897
00:42:26,990 –> 00:42:29,440
مجبور نیستیم فقط آن را در این قسمت اسمبل کنید.
898
00:42:29,440 –> 00:42:35,360
فایل در لوله
899
00:42:35,360 –> 00:42:37,550
در کد منبع پایتون در
900
00:42:37,550 –> 00:42:41,600
زیر پوشه پایتون یک فایل c eval c وجود دارد و
901
00:42:41,600 –> 00:42:43,640
این در واقع حلقه اصلی
902
00:42:43,640 –> 00:42:48,140
بایت کد سوئیچ ماشین مجازی است،
903
00:42:48,140 –> 00:42:51,140
بنابراین اگر بارگذاری شده باشد، اوه نه بالا.
904
00:42:51,140 –> 00:42:53,780
سریع اگر بار است، همه این
905
00:42:53,780 –> 00:42:56,000
نامها سریع ذخیره میشوند، اینها اکنون برای شما آشنا هستند،
906
00:42:56,000 –> 00:42:57,560
زیرا آنها را به مدت 30 ثانیه دیدهاید،
907
00:42:57,560 –> 00:43:01,580
سمت راست ذخیره سریع نام بارگذاری
908
00:43:01,580 –> 00:43:04,280
بالا pop top dupe top همه آنها در اینجا هستند
909
00:43:04,280 –> 00:43:07,280
این کد c است. وقتی کدهای بایت
910
00:43:07,280 –> 00:43:10,340
اجرا میشوند، اجرا میشود و
911
00:43:10,340 –> 00:43:11,860
کارهای مختلفی را انجام میدهد که توابع دیگر c را فراخوانی میکند
912
00:43:11,860 –> 00:43:15,020
تا در واقع تغییراتی را
913
00:43:15,020 –> 00:43:18,940
که میدانید برای اجرای
914
00:43:23,040 –> 00:43:27,450
چند نفر انجام میدهند، خوب است،
915
00:43:27,450 –> 00:43:42,760
بنابراین یک سوال بله، پس شما
916
00:43:42,760 –> 00:43:45,180
گفتید که این کار را انجام دادید.
917
00:43:50,190 –> 00:43:52,250
918
00:43:52,980 –> 00:43:56,760
متاسفم که من هنوز کار خواهم کرد و شما سه مورد را دریافت کردید
919
00:43:56,760 –> 00:43:59,460
بله، من انتظار دارم که این می تواند برای هر کسی صادق باشد،
920
00:43:59,460 –> 00:44:03,359
پس چرا سه است، بنابراین آیا فکر می کنید
921
00:44:03,359 –> 00:44:06,660
شیء یک-دو-سه-چهار-پنج
922
00:44:06,660 –> 00:44:08,550
قبل از زدن آن فرمان
923
00:44:08,550 –> 00:44:10,710
وجود داشته باشد، Enter را در آنجا بزنید آیا فکر می کنید بخشی دیگر از
924
00:44:10,710 –> 00:44:13,320
کد پایتون دارای نامی
925
00:44:13,320 –> 00:44:15,390
است که به آن شماره ارجاع می دهد زیرا دریافت ref
926
00:44:15,390 –> 00:44:16,320
count کاری که انجام می دهد این است که
927
00:44:16,320 –> 00:44:20,510
اساساً شی را می گیرد و
928
00:44:20,510 –> 00:44:23,190
از پایتون می خواهد در آن شیء جستجو کند
929
00:44:23,190 –> 00:44:24,810
که در کجا تعداد مراجع را ذخیره می کنید.
930
00:44:24,810 –> 00:44:26,250
نام ها
931
00:44:26,250 –> 00:44:27,840
اشاره می کنند آن شی چند نام
932
00:44:27,840 –> 00:44:29,340
به آن شیء متصل شده است و آن را برمی گرداند
933
00:44:29,340 –> 00:44:33,330
تا بتوانم آن را درست ببینم، بنابراین یک دو سه
934
00:44:33,330 –> 00:44:34,170
چهار پنج
935
00:44:34,170 –> 00:44:36,810
به احتمال زیاد در حافظه وجود نداشت، سپس
936
00:44:36,810 –> 00:44:39,930
من این کار را انجام دادم و وجود داشت و سپس
937
00:44:39,930 –> 00:44:41,250
من دریافت ref count و آن را صدا زدم. تبدیل
938
00:44:41,250 –> 00:44:42,359
به من یک نام با چند
939
00:44:42,359 –> 00:44:44,430
مرجع برگرداند جالب تر
940
00:44:44,430 –> 00:44:45,540
شاید به این دلیل که چرا به جای یک سه است
941
00:44:45,540 –> 00:44:47,340
یا هیچ کدام چرا صفر نیست
942
00:44:47,340 –> 00:44:51,810
خوب فکر کنید که چگونه دریافت ref
943
00:44:51,810 –> 00:44:54,570
count نوشته می شود این یک تابع است دارای
944
00:44:54,570 –> 00:44:58,230
پارامترها است یک مرجع به یک دو سه
945
00:44:58,230 –> 00:44:59,940
چهار پنج آن شی عدد صحیح به
946
00:44:59,940 –> 00:45:02,910
عنوان آرگومان به تابع ref count منتقل شد
947
00:45:02,910 –> 00:45:04,890
و سپس تابع شروع به
948
00:45:04,890 –> 00:45:06,600
اجرا کرد و یک فضای نام در
949
00:45:06,600 –> 00:45:09,060
آن فضای نام داشت، باید برای آن شیء یک نام داشته
950
00:45:09,060 –> 00:45:11,480
باشد، بنابراین یکی از آنها وجود دارد که من
951
00:45:11,480 –> 00:45:14,820
نمی دانم. میدونی دوتای دیگه کجا هستن
952
00:45:14,820 –> 00:45:19,230
جواب گرفتی که زیرخط L چیه
953
00:45:19,230 –> 00:45:20,820
یکی دیگه زیرخط هست آه
954
00:45:20,820 –> 00:45:22,369
[موسیقی]
955
00:45:22,369 –> 00:45:25,020
نه اینجا زیرخط وجود نداره اما من
956
00:45:25,020 –> 00:45:26,609
انتظار داشتم که یه
957
00:45:26,609 –> 00:45:29,690
اسم دیگه وجود داشته باشه که به
958
00:45:29,690 –> 00:45:34,850
طور موقت اونجا ایجاد میشه. کلمه دیگری است به هر حال
959
00:45:35,030 –> 00:45:38,550
locals من فکر میکنم locals تابعی است
960
00:45:38,550 –> 00:45:41,100
که لیستی از نامها را برمیگرداند، اما
961
00:45:41,100 –> 00:45:43,980
فکر نمیکنم آن را جدا نگه میدارد،
962
00:45:43,980 –> 00:45:45,840
خوب است، حتی بنابراین
963
00:45:45,840 –> 00:45:46,950
اینجا فضای نامی وجود ندارد یک دو سه چهار
964
00:45:46,950 –> 00:45:48,840
پنج فقط یک عدد صحیح قانونی است. وجود ندارد،
965
00:45:48,840 –> 00:45:50,520
من هیچ نامی در فضای نام فعلی ایجاد
966
00:45:50,520 –> 00:45:52,200
نکردهام که به آن یک دو
967
00:45:52,200 –> 00:45:58,680
سه چهار پنج بسیار خوب است، بنابراین متوجه میشوید
968
00:45:58,680 –> 00:46:02,460
که من در تمام بعدازظهر
969
00:46:02,460 –> 00:46:03,050
970
00:46:03,050 –> 00:46:07,119
اینطور شما را مسخره میکنم، میگویم نه من نمیدانم استراحت کن،
971
00:46:07,119 –> 00:46:10,670
اما میتوانی بروی، اوه،
972
00:46:10,670 –> 00:46:11,869
سؤالی داشتی، واقعاً همان چیزی است که من میگویم برو ببین
973
00:46:11,869 –> 00:46:14,839
آره، به هر حال خوب است، بنابراین یکی
974
00:46:14,839 –> 00:46:16,699
از آنها را بشناسد، خیلی خوب است که آنها
975
00:46:16,699 –> 00:46:19,369
از قبل به من 20 اختصاص
976
00:46:19,369 –> 00:46:24,829
دادهاند. هیچکدام
977
00:46:24,829 –> 00:46:33,829
اینها را درست انجام ندادیم، فکر می کنیم این یکی
978
00:46:33,829 –> 00:46:38,839
جالب خواهد بود چرا کمتر
979
00:46:38,839 –> 00:46:42,229
به جای بیشتر است، بنابراین این یکی می فهمم که
980
00:46:42,229 –> 00:46:44,089
این یکی برای من منطقی است، یکی دو
981
00:46:44,089 –> 00:46:45,769
سه چهار پنج که نمی فهمم، اما این یکی
982
00:46:45,769 –> 00:46:48,859
برای من منطقی است زیرا شیء
983
00:46:48,859 –> 00:46:51,229
در آنجا حافظه ای از نوع اشیاء ایجاد شده است،
984
00:46:51,229 –> 00:46:54,109
بنابراین مقدار زیادی ندارد تمام
985
00:46:54,109 –> 00:46:55,670
زیرساختها برای یک شی بودن را دارد و
986
00:46:55,670 –> 00:46:57,619
هیچکدام از رفتارهایی که اصلاً جالب هستند
987
00:46:57,619 –> 00:47:00,380
، به جز ایدهاش با همه شیهای
988
00:47:00,380 –> 00:47:01,549
دیگر
989
00:47:01,549 –> 00:47:03,410
در پایتون متفاوت نیست، به همین دلیل است که یک
990
00:47:03,410 –> 00:47:04,849
شیء معقول خوب است، شما به یک شی نگهبان نیاز دارید
991
00:47:04,849 –> 00:47:06,289
که به شما بگوید پایان کار است.
992
00:47:06,289 –> 00:47:08,390
از یک چیزی و باید با
993
00:47:08,390 –> 00:47:10,190
هر شیء دیگر متفاوت باشد، هر کار دیگر،
994
00:47:10,190 –> 00:47:12,650
هر شیء دیگر بهترین کار تا راهی
995
00:47:12,650 –> 00:47:16,009
برای انجام آن باشد، بنابراین من بدانم که این نام
996
00:47:16,009 –> 00:47:17,690
در فضای نام فعلی وجود دارد و زمانی که این
997
00:47:17,690 –> 00:47:19,459
نام نامیده شد، در آن تابع
998
00:47:19,459 –> 00:47:22,009
در آن نام وجود داشت. فضای نام و
999
00:47:22,009 –> 00:47:27,259
حداقل در آن نقطه بود که نام دو یکی
1000
00:47:27,259 –> 00:47:29,630
در این فضای نام و نام یکی بود
1001
00:47:29,630 –> 00:47:31,910
که در حین اجرای این تابع داشت،
1002
00:47:31,910 –> 00:47:34,039
زیرا آن تابع نیز
1003
00:47:34,039 –> 00:47:35,509
به ارجاع به آن شی نیاز دارد و این کار
1004
00:47:35,509 –> 00:47:43,729
را با نام okay انجام می دهد. البته این
1005
00:47:43,729 –> 00:47:47,869
خطوط غلط بر می گردند، زیرا اگر من
1006
00:47:47,869 –> 00:47:49,819
یک شی جدید ایجاد
1007
00:47:49,819 –> 00:47:52,009
کنم با آخرین شیء جدیدی که ایجاد کردم متفاوت خواهد بود
1008
00:47:52,009 –> 00:47:53,869
، بنابراین آنها همان شیء نیستند،
1009
00:47:53,869 –> 00:47:55,519
متأسفم
1010
00:47:55,519 –> 00:48:00,349
که کشتی در آنجا وجود دارد که حقیقت دارد.
1011
00:48:00,349 –> 00:48:01,789
e من فکر می کنم قرارداد
1012
00:48:01,789 –> 00:48:03,920
بین Python و کاربران از نظر
1013
00:48:03,920 –> 00:48:06,440
ایجاد یک نمونه شی در آن
1014
00:48:06,440 –> 00:48:09,499
کلاس چه چیزی است، اگر
1015
00:48:09,499 –> 00:48:12,109
درست بود عجیب بود و اگر بود عجیب
1016
00:48:12,109 –> 00:48:15,229
بود، متاسفم که هرگز گیج شدم.
1017
00:48:15,229 –> 00:48:17,200
فکر کنید
1018
00:48:17,200 –> 00:48:19,180
این منطقی است زیرا دو شی
1019
00:48:19,180 –> 00:48:21,010
فقط به همین اندازه برابر هستند، بنابراین شی تساوی را تعریف می کند،
1020
00:48:21,010 –> 00:48:22,420
اگر همان منطق است
1021
00:48:22,420 –> 00:48:24,630
که در اینجا
1022
00:48:24,630 –> 00:48:30,640
1023
00:48:30,640 –> 00:48:34,120
اتفاق می افتد، خوب هر سوالی دارید، بیایید در مورد توابع صحبت کنیم، بنابراین چه اتفاقی می افتد، باید
1024
00:48:34,120 –> 00:48:40,390
یک تابع را به خوبی پیدا کنیم که چه اتفاقی می افتد
1025
00:48:40,390 –> 00:48:43,150
توابع و کلاس ها توسط روش این است که
1026
00:48:43,150 –> 00:48:47,920
این نام در دو مکان قرار می گیرد،
1027
00:48:47,920 –> 00:48:50,940
بنابراین بدنه تابع ارزیابی می شود و
1028
00:48:50,940 –> 00:48:53,620
تبدیل به بایت کد ذخیره شده
1029
00:48:53,620 –> 00:48:55,720
در جایی در یک شیء می شود که
1030
00:48:55,720 –> 00:48:59,470
شی تابع به نام add متصل می شود، بنابراین
1031
00:48:59,470 –> 00:49:01,180
این یک عملیات فضای نام است تا حدی
1032
00:49:01,180 –> 00:49:03,550
درست است که ما اضافه می کنیم. نام را به
1033
00:49:03,550 –> 00:49:10,690
فضای نام فعلی اضافه کنید و در اینجا اثبات همه چیز
1034
00:49:10,690 –> 00:49:13,090
درست است، اما نگاه کنید به نام dunder cual اضافه می کند
1035
00:49:13,090 –> 00:49:15,100
که در مورد نام افزودن نیز می داند، بنابراین
1036
00:49:15,100 –> 00:49:16,570
گفتم اشیا در مورد آن چیزی نمی
1037
00:49:16,570 –> 00:49:20,040
دانند و نام خود را به خوبی نمی دانند. به نظر می رسد که
1038
00:49:20,040 –> 00:49:25,870
با آنچه قبلاً گفتم در تناقض است مگر اینکه
1039
00:49:25,870 –> 00:49:29,650
نامش را کاملاً عوض کنم، بنابراین اکنون
1040
00:49:29,650 –> 00:49:31,810
این شیء نام خود را
1041
00:49:31,810 –> 00:49:33,580
می داند اما آن را با نام دیگری می شناسد درست است،
1042
00:49:33,580 –> 00:49:35,110
بنابراین من می گویم بله هنوز هم درست است که
1043
00:49:35,110 –> 00:49:36,520
اشیا واقعاً خود را نمی دانند.
1044
00:49:36,520 –> 00:49:39,670
نامهای خود را دارد یا ممکن است برای یک
1045
00:49:39,670 –> 00:49:41,290
تابع راحت باشد که نامی را
1046
00:49:41,290 –> 00:49:43,300
که با آن ایجاد شده است بداند، زیرا
1047
00:49:43,300 –> 00:49:46,120
برای مثال پیامهای خطا خوب به نظر میرسند، بنابراین اکنون اگر سعی کنم به
1048
00:49:46,120 –> 00:49:50,070
چند برابر آنچه اتفاق میافتد دسترسی
1049
00:50:00,050 –> 00:50:01,880
داشته باشم، نامی را که شیء
1050
00:50:01,880 –> 00:50:04,850
دارد تغییر میدهم. ویژگی من
1051
00:50:04,850 –> 00:50:06,860
فضای نام فعلی را اضافه یا حذف نکردم یا تغییر ندادم،
1052
00:50:06,860 –> 00:50:09,470
بنابراین def add نام را به فضای نام اضافه می کند
1053
00:50:09,470 –> 00:50:13,460
اما dot dunder را اضافه می کند که نام
1054
00:50:13,460 –> 00:50:16,400
برابر با فضای نام فعلی x است.
1055
00:50:16,400 –> 00:50:20,390
فضای نام شی add را با
1056
00:50:20,390 –> 00:50:22,550
تغییر Multan به آن تغییر می دهم
1057
00:50:22,550 –> 00:50:24,380
ویژگی qual name یک رشته متفاوت است یا به رشته دیگری
1058
00:50:24,380 –> 00:50:26,540
اشاره می کند، اما این
1059
00:50:26,540 –> 00:50:27,980
خطای نام نباید شما را شگفت زده کند،
1060
00:50:27,980 –> 00:50:30,620
نه، اگر شما را متعجب کرد اشکالی ندارد، اما
1061
00:50:30,620 –> 00:50:32,150
وقتی در مورد آن فکر می کنید، درست است،
1062
00:50:32,150 –> 00:50:33,890
نمی تواند وجود داشته باشد مانند اگر یک
1063
00:50:33,890 –> 00:50:36,830
شی I دسترسی به ویژگی f اگر یک شی
1064
00:50:36,830 –> 00:50:38,090
بتواند فضای نامی را که شما در آن
1065
00:50:38,090 –> 00:50:40,460
اجرا می کنید به خوبی تغییر دهد، خوب نخواهد بود همه
1066
00:50:40,460 –> 00:50:43,090
چیزهای وحشتناک ممکن است اتفاق بیفتد،
1067
00:50:43,090 –> 00:50:46,160
درست است که فقط نیمی از شوخی بود،
1068
00:50:46,160 –> 00:50:47,780
در واقع همه انواع چیزهای تعرفه ای
1069
00:50:47,780 –> 00:50:49,370
اتفاق افتاد زیرا مردم کدی را
1070
00:50:49,370 –> 00:50:51,500
می نوشتند که می رود. و به فضای نام فراخوانی میرسد
1071
00:50:51,500 –> 00:50:52,820
و آن را تغییر میدهد و سپس
1072
00:50:52,820 –> 00:50:55,430
کد شکسته میشود، اما این هدف خوبی
1073
00:50:55,430 –> 00:50:57,890
بود، خوب است، بنابراین اگر به کیفیت افزودن نگاه کنم، ممکن است
1074
00:50:57,890 –> 00:51:00,650
باز هم به درستی ضرب شود و اضافه شود،
1075
00:51:00,650 –> 00:51:01,940
پس اگر به دیگری نگاه کنم،
1076
00:51:01,940 –> 00:51:04,610
بله، فکر میکند چه میشود. درست است ضرب می شود،
1077
00:51:04,610 –> 00:51:05,960
بنابراین حالا فکر می کند این همان دوره شی است که
1078
00:51:05,960 –> 00:51:07,750
قبلاً به add نگاه کردیم و گفت
1079
00:51:07,750 –> 00:51:10,970
که رعد و برق است نقطه اصلی اضافه کنید نه می گوید
1080
00:51:10,970 –> 00:51:14,840
این رعد و برق است.
1081
00:51:14,840 –> 00:51:15,350
1082
00:51:15,350 –> 00:51:18,590
1083
00:51:18,590 –> 00:51:20,060
نام برابر نام در
1084
00:51:20,060 –> 00:51:21,680
پایتون تنها راه شکست آن این است که
1085
00:51:21,680 –> 00:51:23,390
اگر سمت راست نام تعریف
1086
00:51:23,390 –> 00:51:25,310
نشده باشد، در غیر این صورت کار می کند، کاری را انجام می
1087
00:51:25,310 –> 00:51:26,390
دهد و چرا کاری را که می خواهید انجام ندهید،
1088
00:51:26,390 –> 00:51:28,190
اما به شما
1089
00:51:28,190 –> 00:51:30,560
خطایی نمی دهد. آ و حالا ضرب
1090
00:51:30,560 –> 00:51:36,350
به فضای نام اضافه شده است خوب ببینیم بیایید به
1091
00:51:36,350 –> 00:51:38,600
dunder dict نگاه کنیم چه تعهدی برای قرار دادن
1092
00:51:38,600 –> 00:51:40,220
توابع دارند interdict اضافه می کنند خوب آنها
1093
00:51:40,220 –> 00:51:42,380
انجام می دهند و خالی است مگر اینکه
1094
00:51:42,380 –> 00:51:45,500
چیزی به آن اضافه کنید چرا خوب است من از نظر
1095
00:51:45,500 –> 00:51:47,300
تاریخی نمی دانم چرا اما می آید به
1096
00:51:47,300 –> 00:51:51,110
راحتی همه لبخند می زنند، در واقع نمی دانم
1097
00:51:51,110 –> 00:51:53,060
چرا قابل نوشتن است، حدس می زنم یک
1098
00:51:53,060 –> 00:51:54,650
سوال وجود دارد که ویژگی های عملکرد زیادی وجود دارد،
1099
00:51:54,650 –> 00:51:56,450
اما چرا به
1100
00:51:56,450 –> 00:51:57,770
شما اجازه داده می شود که به خوبی به آن اضافه کنید.
1101
00:51:57,770 –> 00:52:02,000
1102
00:52:02,000 –> 00:52:03,830
1103
00:52:03,830 –> 00:52:05,840
تابع یک نام نامیده میشود که اساساً
1104
00:52:05,840 –> 00:52:08,570
نامهای پارامتر ایجاد شده به تابع محدود میشوند،
1105
00:52:08,570 –> 00:52:10,210
آرگومانها را فرا میخواند
1106
00:52:10,210 –> 00:52:12,530
خوب متوجه میشوید که من از آرگومانها و
1107
00:52:12,530 –> 00:52:13,160
پارامترها به
1108
00:52:13,160 –> 00:52:14,869
طور خاص به دو روش مختلف استفاده
1109
00:52:14,869 –> 00:52:16,640
میکنم.
1110
00:52:16,640 –> 00:52:18,500
1111
00:52:18,500 –> 00:52:21,859
برای شما مهم نیست
1112
00:52:21,859 –> 00:52:23,180
که آنها را با هم مخلوط کنید، اما اگر
1113
00:52:23,180 –> 00:52:24,799
دقیقاً از آنها استفاده کنید
1114
00:52:24,799 –> 00:52:25,760
، مستندات پایتون را دنبال می کنید
1115
00:52:25,760 –> 00:52:27,230
زیرا آنها دو بسیار متفاوت هستند.
1116
00:52:27,230 –> 00:52:37,700
همه چیز درست است، بنابراین من میخواهم
1117
00:52:37,700 –> 00:52:39,440
یک فضای نام ایجاد کنم و نامها را به آن پیوند بزنم
1118
00:52:39,440 –> 00:52:42,470
و سپس آن را دور بیاندازم، درست همان
1119
00:52:42,470 –> 00:52:44,089
چیزی است که اتفاق افتاد، تابع add
1120
00:52:44,089 –> 00:52:47,539
نامیده شد یک فضای نام جدید ایجاد کرد که a
1121
00:52:47,539 –> 00:52:50,780
محدود به B بود.
1122
00:52:50,780 –> 00:52:53,510
سه، مقداری بایت کد اجرا شد تا عملاً جمع
1123
00:52:53,510 –> 00:52:55,460
انجام شود و سپس
1124
00:52:55,460 –> 00:52:57,109
بازگشت، پنج را به من برگرداند و سپس
1125
00:52:57,109 –> 00:53:02,329
فضای نام دور ریخته شد، آرگومانهای پیشفرض خوب
1126
00:53:02,329 –> 00:53:05,869
که قبلاً اینها را دیدهاید، بنابراین
1127
00:53:05,869 –> 00:53:10,789
وقتی این را اجرا میکنم، ارزشگذاری میشوند که عبارات آنها در
1128
00:53:10,789 –> 00:53:12,500
زمانی که تابع
1129
00:53:12,500 –> 00:53:16,750
زمانی که تابع تعریف می شود دریافت می شود، بنابراین
1130
00:53:16,750 –> 00:53:21,890
چه زمانی برابر با p1 چاپ می شود، چاپ
1131
00:53:21,890 –> 00:53:24,799
در امضا ارزیابی می شود و چه
1132
00:53:24,799 –> 00:53:28,059
زمانی p1 دارای مقدار p1 ارزیابی می شود
1133
00:53:28,059 –> 00:53:30,710
و پاسخ زمانی است که شما تابع را تعریف
1134
00:53:30,710 –> 00:53:32,329
می کنید، زمانی که اولین آرگومان
1135
00:53:32,329 –> 00:53:37,250
زمانی که p1 برابر است اتفاق می افتد. درست است، من حتی نمی
1136
00:53:37,250 –> 00:53:38,569
توانم به دلیل خوبی برای
1137
00:53:38,569 –> 00:53:39,980
داشتن یک چاپ برابر p1 به عنوان
1138
00:53:39,980 –> 00:53:44,690
آرگومان پیش فرض فکر کنم.
1139
00:53:44,690 –> 00:53:47,270
1140
00:53:47,270 –> 00:53:54,470
1141
00:53:54,470 –> 00:53:58,700
ause print هیچکدام را برمی گرداند چگونه در مورد
1142
00:53:58,700 –> 00:54:02,020
این یکی چه اتفاقی می افتد اینجا
1143
00:54:04,890 –> 00:54:07,450
خوب ما می دانیم که p1 تعریف شده است به عنوان gonna print
1144
00:54:07,450 –> 00:54:10,450
چه در مورد P – تعریف شده است که فکر می کند آنها
1145
00:54:10,450 –> 00:54:12,060
هستند که اعتماد به نفس دارند که پاسخ را می دانند
1146
00:54:12,060 –> 00:54:16,480
فقط برای اینکه بفهمند چقدر خوب هستند و
1147
00:54:16,480 –> 00:54:19,360
این همان است من دقیقاً دلیل
1148
00:54:19,360 –> 00:54:21,700
اینکه این کارها را انجام می دهم این است که می
1149
00:54:21,700 –> 00:54:22,870
دانستم مردم از من سؤال می پرسند و
1150
00:54:22,870 –> 00:54:24,130
من می روم ، واقعاً نمی دانم چگونه کار می کند ،
1151
00:54:24,130 –> 00:54:26,140
بنابراین می روم آن را کشف کنم و
1152
00:54:26,140 –> 00:54:27,130
کمی فقط دو هفته
1153
00:54:27,130 –> 00:54:28,750
پیش نبودم حدود یک ماه پیش یکی گفت
1154
00:54:28,750 –> 00:54:31,060
خوب، وقتی مجبور شدی، ما
1155
00:54:31,060 –> 00:54:34,090
باید بایت کد کامپایل شده را حذف کنیم،
1156
00:54:34,090 –> 00:54:35,890
فایل dot pyc در پوشه کش dunder PI قرار دارد،
1157
00:54:35,890 –> 00:54:39,160
زیرا در
1158
00:54:39,160 –> 00:54:41,620
زمان اجرای ماژول میدانید که چه زمانی بارگذاری میشود،
1159
00:54:41,620 –> 00:54:43,570
زمانی که کامپایل میشود، در حال رفتن است. برای تعریف
1160
00:54:43,570 –> 00:54:45,910
مانند اگر ما یک متاسفیم مانند اگر در یک
1161
00:54:45,910 –> 00:54:48,220
ماژول برخی از تاریخ ها برابر با
1162
00:54:48,220 –> 00:54:51,730
تاریخ/زمان است، اکنون خوب است، پس وقتی آن را
1163
00:54:51,730 –> 00:54:52,840
دو هفته بعد اجرا می کنیم، آن
1164
00:54:52,840 –> 00:54:54,550
را از PI خارج می کنیم، فایل py see را مانند
1165
00:54:54,550 –> 00:54:57,070
اوه بله درست است. مثل بعد از آن من
1166
00:54:57,070 –> 00:54:58,810
یک دقیقه صبر کنید نه این نمی تواند درست باشد،
1167
00:54:58,810 –> 00:55:00,880
اما این چیزها گیج کننده است و من
1168
00:55:00,880 –> 00:55:02,530
هم گیج می شوم، بنابراین
1169
00:55:02,530 –> 00:55:04,570
اگر اینطور است که این روش کار می کند، احساس بدی نداشته باشید،
1170
00:55:04,570 –> 00:55:06,550
اما این کمک می کند که بدانید واقعا
1171
00:55:06,550 –> 00:55:12,100
چگونه کار می کند، بنابراین پاسخ این است که ما می دانیم که P
1172
00:55:12,100 –> 00:55:13,990
یکی چاپ خواهد کرد P برای چاپ
1173
00:55:13,990 –> 00:55:20,430
پاسخ درست نیست وقتی F 1 را صدا می زنیم
1174
00:55:20,430 –> 00:55:23,260
P 1 برای پیدا کردن چاپ نمی شود اما دومی این کار را
1175
00:55:23,260 –> 00:55:25,720
انجام می دهد زیرا تنها زمانی که ما
1176
00:55:25,720 –> 00:55:28,950
واقعاً f1 را فراخوانی می کنیم عملکرد F 2
1177
00:55:28,950 –> 00:55:36,640
ارزیابی می شود. بسیار خوب، اگر دوباره آن را صدا بزنم،
1178
00:55:36,640 –> 00:55:39,480
خوب شما دو نفر باید دوباره پیدا کنید،
1179
00:55:39,480 –> 00:55:42,250
اگر کنجکاو هستید، بیایید به
1180
00:55:42,250 –> 00:55:43,870
برخی از ویژگیهای توابع که
1181
00:55:43,870 –> 00:55:46,600
عمداً در آنجا هستند نگاه کنیم، نه اینکه
1182
00:55:46,600 –> 00:55:50,830
همه چیز را اضافه کردهایم، بنابراین fi f 1 تابعی است که
1183
00:55:50,830 –> 00:55:52,540
نامی است که به آن وابسته است. یک تابع اتفاق افتاده است
1184
00:55:52,540 –> 00:55:53,890
زیرا ما یک مرگ در فضای نام فعلی انجام دادیم،
1185
00:55:53,890 –> 00:55:59,410
آن یک شی کد دارد و
1186
00:55:59,410 –> 00:56:02,440
آن شی کد مقداری هزینه دارد و
1187
00:56:02,440 –> 00:56:05,800
ثابت هایی دارد و هیچ کدام وجود ندارد، احتمالاً
1188
00:56:05,800 –> 00:56:08,520
به این دلیل که Crowler برگردانده شده
1189
00:56:08,520 –> 00:56:09,910
است،
1190
00:56:09,910 –> 00:56:11,410
اوه بله، گذشته اساساً این کار را
1191
00:56:11,410 –> 00:56:14,170
انجام می دهد. بازگشت و من p2 تعریف شده است و
1192
00:56:14,170 –> 00:56:16,590
سپس این کد o را دریافت می کند bject
1193
00:56:16,590 –> 00:56:20,020
f2 نامی برای F دارد تا به عنوان
1194
00:56:20,020 –> 00:56:21,490
یکی از ثابتهایش عمل کند و
1195
00:56:21,490 –> 00:56:26,860
رشتهای دارد که به معنای واقعی کلمه آن را برمیگرداند
1196
00:56:26,860 –> 00:56:28,600
اوه هیچکدام را برنمیگرداند اما f2
1197
00:56:28,600 –> 00:56:32,530
مشکلی ندارد من ممکن است روی هیچکدام اشتباه صحبت
1198
00:56:32,530 –> 00:56:34,330
کرده باشم زیرا این f1 است. ثابت های کد
1199
00:56:34,330 –> 00:56:37,570
ما به آنها نگاه می کنیم، بنابراین اگر به
1200
00:56:37,570 –> 00:56:41,500
ثابت های کد زیر 2 نگاه کنیم، آن شی کد را بررسی می کنیم و آن را به
1201
00:56:41,500 –> 00:56:46,930
درستی جمع می کنیم تا f2
1202
00:56:46,930 –> 00:56:50,770
وجود داشته باشد، متاسفم که ثابت های کد F موجود در
1203
00:56:50,770 –> 00:56:53,170
زیر 2 وجود دارد که f2 است، بنابراین می توانید ببینید که
1204
00:56:53,170 –> 00:56:58,930
آنها عملکردی را انجام دادند. پاسخ من
1205
00:56:58,930 –> 00:57:00,340
این سوال را نپرسیدم اما فقط
1206
00:57:00,340 –> 00:57:01,900
پاسخ این سوال را به شما نشان دادم که
1207
00:57:01,900 –> 00:57:04,000
این کد چه زمانی کامپایل می شود و
1208
00:57:04,000 –> 00:57:08,710
پاسخ زمانی است که ما ارزیابی می کنیم بنابراین این
1209
00:57:08,710 –> 00:57:10,630
کد قبلاً قبل از فراخوانی کامپایل شده است
1210
00:57:10,630 –> 00:57:13,930
اما ارزیابی نمی شود و
1211
00:57:13,930 –> 00:57:16,990
مقادیر پارامتر پیشفرض پارامتر
1212
00:57:16,990 –> 00:57:24,270
تا آن زمان انجام نمیشود تا زمانی که f1 را فراخوانی کنیم، بسیار خوب است،
1213
00:57:30,550 –> 00:57:33,180
بنابراین f1 بسیار ساده است، فقط
1214
00:57:33,180 –> 00:57:35,620
هیچکدام را برمیگرداند زیرا گذشتهای دارد.
1215
00:57:35,620 –> 00:57:37,120
1216
00:57:37,120 –> 00:57:40,180
یک
1217
00:57:40,180 –> 00:57:47,050
پاس تا f2 که f ones کدهای
1218
00:57:47,050 –> 00:57:51,040
c عنصر دوم onstants بسیار ساده است
1219
00:57:51,040 –> 00:57:53,200
کد f1 کمی پیچیده تر است
1220
00:57:53,200 –> 00:58:01,390
و ببینید چه کاری
1221
00:58:01,390 –> 00:58:04,090
1222
00:58:04,090 –> 00:58:06,700
1223
00:58:06,700 –> 00:58:08,770
1224
00:58:08,770 –> 00:58:10,060
انجام می دهد. باید شیء را با
1225
00:58:10,060 –> 00:58:11,920
پشته و همه چیز ایجاد کرد یا
1226
00:58:11,920 –> 00:58:15,640
برخی از آن ها تابع تماس سریع بارگذاری سریع را ذخیره می کنند، بسیار
1227
00:58:15,640 –> 00:58:20,860
خوب، ما ادامه می دهیم،
1228
00:58:20,860 –> 00:58:22,180
دیگر از من نپرس، شما
1229
00:58:22,180 –> 00:58:23,650
دانش من را در مورد آنچه دقیقاً در مورد آن اتفاق می افتد خسته
1230
00:58:23,650 –> 00:58:26,530
کرده اید. همه آن کدهای بالا،
1231
00:58:26,530 –> 00:58:28,780
حاشیهنویسیهای تابع خوب، خوب اینجا یک مثال از
1232
00:58:28,780 –> 00:58:32,170
یکی است و اینجاست که نشان میدهد این
1233
00:58:32,170 –> 00:58:37,180
فقط یک فرهنگ لغت است و نوع آن
1234
00:58:37,180 –> 00:58:40,270
تعجب آور فرهنگ لغت است، این
1235
00:58:40,270 –> 00:58:43,420
عبارات دلخواه هستند متأسفم، من
1236
00:58:43,420 –> 00:58:46,090
آنجا را کمی گسترده کردم، بنابراین
1237
00:58:46,090 –> 00:58:48,730
میتوانم ریاضی انجام دهم در آنجا می توانم بگویم 99
1238
00:58:48,730 –> 00:58:52,420
بعلاوه 1 باشد و رشته را پیوند دهید مثل اینکه
1239
00:58:52,420 –> 00:58:54,220
هیچ چیز جادویی در این
1240
00:58:54,220 –> 00:58:56,560
1241
00:58:56,560 –> 00:58:57,820
1242
00:58:57,820 –> 00:59:00,340
مورد وجود
1243
00:59:00,340 –> 00:59:02,200
ندارد. از نام آن چیزی است که
1244
00:59:02,200 –> 00:59:06,400
به آن حاشیهنویسیها وارد میشود، خوب، نوبت شماست
1245
00:59:06,400 –> 00:59:10,290
که کمی با برخی از عملکردها بازی
1246
01:01:30,850 –> 01:01:32,780
کنید، خوب، من ادامه میدهم و ما را
1247
01:01:32,780 –> 01:01:34,880
همراهی میکنم، حتی اگر انتظار دارم حتی نیمی از
1248
01:01:34,880 –> 01:01:39,350
شما این کار را انجام نداده باشید، فقط به این دلیل که من
1249
01:01:39,350 –> 01:01:41,390
میخواهم اگر بتوانم همه آن را پوشش دهم و فهمیدن این
1250
01:01:41,390 –> 01:01:43,610
چیزها به اندازه برخی چیزهای دیگر جالب یا سخت
1251
01:01:43,610 –> 01:01:45,280
1252
01:01:45,280 –> 01:01:48,110
1253
01:01:48,110 –> 01:01:53,030
1254
01:01:53,030 –> 01:01:54,830
نیست.
1255
01:01:54,830 –> 01:01:56,900
از این، که اساساً آرگهای ستارهای به
1256
01:01:56,900 –> 01:01:58,850
شما امکان میدهد که تعداد متغیری از
1257
01:01:58,850 –> 01:02:00,500
آرگومانها را تعداد دلخواه آرگومان
1258
01:02:00,500 –> 01:02:02,390
یا آرگومانهای کلیدواژه انجام دهید و
1259
01:02:02,390 –> 01:02:05,330
آنها را برای شما جمعآوری میکند و سپس میتوانید
1260
01:02:05,330 –> 01:02:06,680
روشهای مختلفی را که براساس نحوه ارسال آنها جمعآوری میکند، ببینید
1261
01:02:06,680 –> 01:02:13,910
و سپس میگوییم بسیار خوب،
1262
01:02:13,910 –> 01:02:14,900
چه می شود، اگر یک
1263
01:02:14,900 –> 01:02:16,850
فرهنگ لغت ایجاد کنید و روی آن به
1264
01:02:16,850 –> 01:02:18,410
خوبی تکرار کنید، تکرار بر روی فرهنگ لغت ها فقط قسمت
1265
01:02:18,410 –> 01:02:22,100
هایی روی کلیدها و اینکه ما
1266
01:02:22,100 –> 01:02:23,570
آماده می شویم بگوییم بیایید آن را به یک
1267
01:02:23,570 –> 01:02:25,310
فرهنگ لغت دو قطبی منتقل کنیم، خوب فقط آن را به عنوان
1268
01:02:25,310 –> 01:02:27,830
یک استدلال منفرد ارسال کنید، چه می شود. در حالی که اگر بگویم start
1269
01:02:27,830 –> 01:02:32,060
II میگوید لطفاً آن تکرارپذیر
1270
01:02:32,060 –> 01:02:34,550
را در چندین آرگومان باز کنید و سپس
1271
01:02:34,550 –> 01:02:37,370
آنها را در آرگومانهای ستارهای بازگردانی میکند، بنابراین
1272
01:02:37,370 –> 01:02:40,490
اگر ستاره D را صدا بزنید، فقط
1273
01:02:40,490 –> 01:02:43,990
دو کلید اول را بهعنوان آرگومانهای متعدد میدهید،
1274
01:02:43,990 –> 01:02:46,730
این کار نمیکند زیرا ستاره ستاره
1275
01:02:46,730 –> 01:02:48,440
فقط روی یک نوع نقشه برداری مانند یک
1276
01:02:48,440 –> 01:02:51,560
فرهنگ لغت کار می کند، در حالی که ستاره ستاره
1277
01:02:51,560 –> 01:02:54,230
D امیدوارم همان کاری را انجام دهد که شما انتظار دارید برابر با
1278
01:02:54,230 –> 01:02:59,150
سه B برابر چهار خوب است، بنابراین با دنبال کردن
1279
01:02:59,150 –> 01:03:01,580
موضوع فضاهای نام و عملیات آنها،
1280
01:03:01,580 –> 01:03:03,560
در مورد انتساب و نام های دل
1281
01:03:03,560 –> 01:03:08,510
و مرگ و DEF صحبت کرده ایم. سپس نامهای
1282
01:03:08,510 –> 01:03:11,540
موجود در امضا، نامهایی هستند که
1283
01:03:11,540 –> 01:03:13,100
وقتی توابع اجرا میشوند در یک فضای نام زندگی میکنند
1284
01:03:13,100 –> 01:03:16,750
و سپس ما به تنظیمات و حذف ویژگیها نگاه کردیم،
1285
01:03:16,750 –> 01:03:23,780
بنابراین یک
1286
01:03:23,780 –> 01:03:25,340
محدوده چه محدوده، بخشی از کد پایتون است
1287
01:03:25,340 –> 01:03:27,140
که در آن فضاهای نام
1288
01:03:27,140 –> 01:03:30,710
مستقیماً با استفاده از یک نام در دسترس هستند.
1289
01:03:30,710 –> 01:03:32,570
فضاهای نام قابل دسترسی از نقطهای استفاده میکنند که دیدهایم که
1290
01:03:32,570 –> 01:03:35,210
محدوده فاصله ترتیب جستجوی فضای نام
1291
01:03:35,210 –> 01:03:37,430
شامل نامهای محلی محلی یا
1292
01:03:37,430 –> 01:03:39,530
فضای نام تابع توابع محصور شده
1293
01:03:39,530 –> 01:03:41,300
است و سپس جستجو میکند. اگر
1294
01:03:41,300 –> 01:03:42,560
تابعی را اجرا میکنید و
1295
01:03:42,560 –> 01:03:45,500
از نامی استفاده میکنید که در آن تابع وجود ندارد، در
1296
01:03:45,500 –> 01:03:46,850
غیر این صورت به آن تابع
1297
01:03:46,850 –> 01:03:48,890
اختصاص داده نشده است،
1298
01:03:48,890 –> 01:03:50,750
در تابع یا کلاس فقط
1299
01:03:50,750 –> 01:03:53,660
بالا میرود و در نهایت
1300
01:03:53,660 –> 01:03:56,330
در نامهای جهانی ماژولهای فعلی،
1301
01:03:56,330 –> 01:03:57,740
در حالی که ماژول فعلی در اینجا،
1302
01:03:57,740 –> 01:03:59,380
اعلان تعاملی هر
1303
01:03:59,380 –> 01:04:01,970
فضای نامی است که وجود دارد و سپس
1304
01:04:01,970 –> 01:04:04,600
بیرونیترین کوپ وجود دارد که در نامها ساخته شده است،
1305
01:04:04,600 –> 01:04:07,310
همه تغییرات فضای نام در محدوده محلی اتفاق میافتد،
1306
01:04:07,310 –> 01:04:10,580
این مشکل است و من
1307
01:04:10,580 –> 01:04:14,030
چند نمونه را به شما نشان خواهم داد. باید از
1308
01:04:14,030 –> 01:04:16,910
تغییر تخصیص مجدد یا پیوند مجدد
1309
01:04:16,910 –> 01:04:17,960
نامهای داخلی خودداری کنیم، اما ما این کار را انجام میدهیم زیرا
1310
01:04:17,960 –> 01:04:21,110
هی، گیج کردن مردم سرگرمکننده است،
1311
01:04:21,110 –> 01:04:22,960
امیدواریم مردم را گیج نکند، اما خب،
1312
01:04:22,960 –> 01:04:25,070
ما چیزهای جالبی در مورد نامها یاد خواهیم گرفت،
1313
01:04:25,070 –> 01:04:27,440
بنابراین تابع طول وجود دارد.
1314
01:04:27,440 –> 01:04:33,170
اگر خط خط چاپ F F را خط خطی صدا زدم،
1315
01:04:33,170 –> 01:04:36,040
خط a را چاپ میکند و
1316
01:04:36,040 –> 01:04:40,790
همان تابع داخلی 41 را چاپ میکند،
1317
01:04:40,790 –> 01:04:43,090
نه، منتظر نیستم،
1318
01:04:43,090 –> 01:04:45,500
این به این دلیل است که یکی از افراد توبیخ شده بله
1319
01:04:45,500 –> 01:04:49,850
TR فکر میکنم درست است
1320
01:04:49,850 –> 01:04:52,580
، مطمئن نیستم بیایید ادامه دهیم، ممکن است
1321
01:04:52,580 –> 01:04:55,030
بعداً به آن اشاره کنیم،
1322
01:04:56,720 –> 01:04:58,160
خب حالا بیایید کار جالبتری انجام دهیم،
1323
01:04:58,160 –> 01:05:00,410
بیایید یک تابع Len را
1324
01:05:00,410 –> 01:05:03,890
در داخل تابع F تعریف کنیم که هیچ کاری انجام نمیدهد،
1325
01:05:03,890 –> 01:05:05,540
اما وقتی Len را در داخل
1326
01:05:05,540 –> 01:05:08,450
آن تابع چاپ میکنیم، چیز
1327
01:05:08,450 –> 01:05:12,190
متفاوتی دریافت میکنیم.
1328
01:05:12,190 –> 01:05:20,090
تابع f نقطه محلی ها dot را به ما نشان می دهد و سپس خوب است،
1329
01:05:20,090 –> 01:05:24,940
اما اگر این کار را انجام دهیم،
1330
01:05:28,950 –> 01:05:31,770
خط B را چاپ می کند، او ابتدا یا دوم را به
1331
01:05:31,770 –> 01:05:33,690
سمت راست چاپ می کند
1332
01:05:33,690 –> 01:05:35,220
، تابع f را که تابع را تعریف می کند، تعریف می کند،
1333
01:05:35,220 –> 01:05:37,140
سپس آن را مشخص می کند که آن
1334
01:05:37,140 –> 01:05:38,460
را فراخوانی می کند. خط تابعی که قرار است
1335
01:05:38,460 –> 01:05:40,170
به همان یک داخلی دسترسی پیدا کند،
1336
01:05:40,170 –> 01:05:41,579
زیرا فضای
1337
01:05:41,579 –> 01:05:42,839
نام، نام land را جستجو می کند، آن را در فضای نام فعلی پیدا می کند،
1338
01:05:42,839 –> 01:05:44,670
زیرا
1339
01:05:44,670 –> 01:05:47,970
خط قبل یا بلوک قبل از آن اضافه شده است و سپس
1340
01:05:47,970 –> 01:05:50,849
در خط B، زمین را چاپ می کند.
1341
01:05:50,849 –> 01:05:52,710
فضای نام جدید دوباره به دنبال
1342
01:05:52,710 –> 01:05:55,349
فضای نام محصور می شود تا
1343
01:05:55,349 –> 01:05:58,680
نام خود را به یک معنا پیدا کند و سپس خط C
1344
01:05:58,680 –> 01:06:05,730
همان چیزی را چاپ می کند، خوب است
1345
01:06:05,730 –> 01:06:10,380
، این چه کاری انجام می دهد.
1346
01:06:10,380 –> 01:06:12,770
اگر آن را پیدا کنید،
1347
01:06:14,500 –> 01:06:19,490
ابتدا خط F چاپ می شود، شما
1348
01:06:19,490 –> 01:06:24,320
تابع داخلی را چاپ می کنید سپس خط او
1349
01:06:24,320 –> 01:06:31,910
اجرا می شود و رشته را چاپ می کند
1350
01:06:31,910 –> 01:06:36,430
بسیار خوب است، خوب خوب
1351
01:06:36,730 –> 01:06:40,880
است، پس اگر من فقط Lin را تایپ
1352
01:06:40,880 –> 01:06:44,510
کنم حالا Lin چیست.
1353
01:06:44,510 –> 01:06:46,670
زیرا در این فضای نام قرار دارد، خیر،
1354
01:06:46,670 –> 01:06:47,990
زیرا در فضای نام داخلی قرار دارد
1355
01:06:47,990 –> 01:06:49,520
که پس از بررسی در فضای نام فعلی، به خوبی به آن نگاه می کند،
1356
01:06:49,520 –> 01:06:53,780
بنابراین
1357
01:06:53,780 –> 01:06:54,890
این کاری است که نباید انجام دهید، زیرا
1358
01:06:54,890 –> 01:06:57,020
حداقل افرادی مانند من را
1359
01:06:57,020 –> 01:07:00,620
که می دانند خوانندگان را سردرگم می کند. ساخته شده است، بنابراین اگر اکنون
1360
01:07:00,620 –> 01:07:01,870
به Lin نگاه کنم
1361
01:07:01,870 –> 01:07:05,330
خوب است، اگر آن تابع را تعریف کنم و
1362
01:07:05,330 –> 01:07:12,640
نامش را بگذارم
1363
01:07:16,550 –> 01:07:19,520
، کاری انجام می دهد که او می تواند به من
1364
01:07:19,520 –> 01:07:24,320
خطایی بدهد یا فقط آن چیزی نیست که من انتظار دارم
1365
01:07:24,320 –> 01:07:35,690
خطای نوع آن چیزی که ساده لوح نیست، خوب بگو
1366
01:07:35,690 –> 01:07:39,100
لنز نیست. ساده لوح
1367
01:07:39,100 –> 01:07:42,260
اسمش را چه بگذارد 99 9
1368
01:07:42,260 –> 01:07:44,180
اسم لین را نمیداند که من اینجا انتخاب میکنم، اما
1369
01:07:44,180 –> 01:07:45,560
دوباره مجبورت میکنم
1370
01:07:45,560 –> 01:07:47,540
در مورد نامها و اشیاء درست فکر کنید تا
1371
01:07:47,540 –> 01:07:52,100
زمانی که این اتفاق میافتد، فقط میگوید
1372
01:07:52,100 –> 01:07:54,080
شی int است. ساده لوح نیست بله
1373
01:07:54,080 –> 01:07:56,750
پس حق با شماست اما اما
1374
01:07:56,750 –> 01:07:58,400
خطاهای واقعی دوباره باید به این صورت باشد
1375
01:07:58,400 –> 01:08:01,810
که تا زمانی که این فراخوانی اتفاق میافتد،
1376
01:08:01,810 –> 01:08:04,880
نام آن فراموش میشود، با این حال
1377
01:08:04,880 –> 01:08:07,010
هر زمینهای که مشکلی ندارد، بنابراین اکنون اگر
1378
01:08:07,010 –> 01:08:15,460
به لین نگاه کنم هنوز 99 اگر من دل هستم،
1379
01:08:15,760 –> 01:08:18,109
میتوانم کاری را که فکر میکنیم انجام دهم. این کار را انجام می دهد که
1380
01:08:18,109 –> 01:08:20,120
فکر می کنید باید آن را
1381
01:08:20,120 –> 01:08:22,640
از فضای نام حذف کنید، پس حالا اگر به
1382
01:08:22,640 –> 01:08:25,370
Lynn نگاه کنم با یک خطای نام مواجه می شوم،
1383
01:08:25,370 –> 01:08:27,170
زیرا می رود و می رود و در
1384
01:08:27,170 –> 01:08:30,020
فضای نام جهانی نگاه می کند، حالا این
1385
01:08:30,020 –> 01:08:32,380
چه کاری انجام می دهد.
1386
01:08:35,850 –> 01:08:40,800
یک راست را خنک کنید تا دل نتواند
1387
01:08:40,800 –> 01:08:41,520
روی داخلیها
1388
01:08:41,520 –> 01:08:43,590
کار کند، بنابراین او del in Lent را در اینجا انجام میدهد و در
1389
01:08:43,590 –> 01:08:45,390
فضای نام محلی نگاه میکند میگوید متأسفم نمیتوانم
1390
01:08:45,390 –> 01:08:48,479
آن را پیدا کنم، بنابراین del موردی است که
1391
01:08:48,479 –> 01:08:49,649
در واقع آن را جستجو نمیکند. وجود
1392
01:08:49,649 –> 01:08:51,870
دارد که تا حدی مفید است من
1393
01:08:51,870 –> 01:08:52,319
شک
1394
01:08:52,319 –> 01:08:53,550
دارم که فکر نمی کنم هرگز
1395
01:08:53,550 –> 01:08:55,710
برای کسی مفید باشد اما به نوعی خوب
1396
01:08:55,710 –> 01:08:58,160
است و زمین هنوز آنجاست البته
1397
01:08:58,160 –> 01:09:11,010
بنابراین چاپ Len walk print لن این بود اما
1398
01:09:11,010 –> 01:09:14,729
تعریف شده بود وقتی لن 99 ساله بود، چه
1399
01:09:14,729 –> 01:09:19,700
کاری انجام میدهد، آنها کار میکنند یا شکست
1400
01:09:19,700 –> 01:09:22,680
میخورند، کار میکنند، زیرا نامها n
1401
01:09:22,680 –> 01:09:24,930
درست پیش از موعد
1402
01:09:24,930 –> 01:09:26,130
به بالا نگاه نکرده است تا تابع بداند که قرار است نام
1403
01:09:26,130 –> 01:09:29,630
Lin را جستجو کند و این کار را زمانی انجام می دهد که بله
1404
01:09:29,630 –> 01:09:36,300
خوب Pass pass برابر با سه آه است، بنابراین
1405
01:09:36,300 –> 01:09:38,160
می توانم فقط 99 را امضا کنم گذشته I can’t زیرا
1406
01:09:38,160 –> 01:09:39,960
pass است یک کلمه کلیدی نه فقط یک
1407
01:09:39,960 –> 01:09:42,990
نام داخلی، بلکه یک کلمه کلیدی است که به
1408
01:09:42,990 –> 01:09:46,050
من خطای نحوی می دهد، در این مورد شما
1409
01:09:46,050 –> 01:09:52,439
کلمات کلیدی هستید و بله،
1410
01:09:52,439 –> 01:09:54,300
اینها واقعاً تنها شناسه هایی
1411
01:09:54,300 –> 01:09:56,580
هستند که به اشیا اشاره نمی کنند زیرا آنها
1412
01:09:56,580 –> 01:09:59,280
زمان کامپایل مجدد اکثراً به هر حال تمرکز
1413
01:09:59,280 –> 01:10:02,850
محلیها مقدار خوب برابر است با ماژول مانند
1414
01:10:02,850 –> 01:10:07,790
اینکه در محدوده ماژول است، بنابراین بیایید این کار را انجام دهیم
1415
01:10:07,790 –> 01:10:12,960
، ماژول چاپ میشود در واقع
1416
01:10:12,960 –> 01:10:18,890
بله، ماژول را چاپ میکند خوب این یک
1417
01:10:18,980 –> 01:10:22,260
مقدار اگر به مقدار فعلی مقدار نگاه کنم،
1418
01:10:22,260 –> 01:10:24,870
متأسفم که بد است اسمش رو بعد
1419
01:10:24,870 –> 01:10:26,280
از اینکه تغییر دادم بهتر باشه وقتی
1420
01:10:26,280 –> 01:10:29,160
با صدای بلند میخونمش یه مقدار اسم بدی هستش که
1421
01:10:29,160 –> 01:10:34,080
اسم ماژول رشته هست
1422
01:10:34,080 –> 01:10:37,070
1423
01:10:40,600 –> 01:10:43,220
1424
01:10:43,220 –> 01:10:45,800
و من چاپ
1425
01:10:45,800 –> 01:10:48,920
داخلی چگونه در مورد تست unbound محلی
1426
01:10:48,920 –> 01:10:52,520
wh at است که قرار است انجام شود، ابتدا
1427
01:10:52,520 –> 01:10:54,500
مقدار را چاپ می کنم، بنابراین ممکن است فکر
1428
01:10:54,500 –> 01:10:57,700
کنید ماژول را می بینم و سپس آن را به ماژول تغییر می دهم
1429
01:10:57,700 –> 01:11:02,210
و در اینجا خطای محلی unbound معروف است
1430
01:11:02,210 –> 01:11:03,220
1431
01:11:03,220 –> 01:11:05,390
که در اینجا یک خطای محلی unbound دریافت کرده است،
1432
01:11:05,390 –> 01:11:06,370
1433
01:11:06,370 –> 01:11:12,230
بله، بنابراین مقدار محلی یک
1434
01:11:12,230 –> 01:11:13,610
مرجع مقدار متغیر محلی قبل از
1435
01:11:13,610 –> 01:11:19,400
تخصیص mm-hmm بله تغییر
1436
01:11:19,400 –> 01:11:21,710
نکرده است خوب خوب اجازه دهید به این یکی نگاه کنیم و
1437
01:11:21,710 –> 01:11:25,460
ببینیم اینجا چه خبر است.
1438
01:11:25,460 –> 01:11:29,600
1439
01:11:29,600 –> 01:11:34,940
1440
01:11:34,940 –> 01:11:37,280
در چاپ بایت کد استفاده شده
1441
01:11:37,280 –> 01:11:39,350
تنها موردی است که منظورم این است که از اینجا نسخه پشتیبان تهیه کنید و
1442
01:11:39,350 –> 01:11:40,430
به شما یادآوری کنم که این تابع چگونه به نظر می
1443
01:11:40,430 –> 01:11:42,200
رسد، فقط یک مقدار چاپ و مقدار برابر است در
1444
01:11:42,200 –> 01:11:48,770
داخل، تعداد محلی ها را دارد
1445
01:11:48,770 –> 01:11:55,730
که یک عدد است، بنابراین
1446
01:11:55,730 –> 01:11:57,620
قبل از اجرای آن از قبل می داند که می داند که
1447
01:11:57,620 –> 01:12:03,080
یک محلی وجود دارد و آن محلی مقدار نام
1448
01:12:03,080 –> 01:12:12,470
است، بنابراین اگر به این نگاه کنم، تعریف مجدد وجود دارد،
1449
01:12:12,470 –> 01:12:16,100
بنابراین اگر مقدار چاپ یا مقدار چاپ را قرار دهم،
1450
01:12:16,100 –> 01:12:20,900
بنابراین مقداری را مانند
1451
01:12:20,900 –> 01:12:22,430
انجام نام binding و سپس چاپ
1452
01:12:22,430 –> 01:12:24,020
یا چاپ را تعیین کنید و سپس آن را انجام دهید. پس یک من پیوند
1453
01:12:24,020 –> 01:12:30,680
یکی کار نمی کند و به این دلیل است که
1454
01:12:30,680 –> 01:12:32,750
هر دو ثابت درونی دارند و هیچ کدام را به عنوان ثابت خود دارند،
1455
01:12:32,750 –> 01:12:35,320
1456
01:12:42,360 –> 01:12:46,010
فکر می کنم اشتباه است متأسفم،
1457
01:12:50,330 –> 01:12:52,160
فکر می کنم حتی این یکی هم ممکن است اشتباه باشد،
1458
01:12:52,160 –> 01:12:53,510
می توانم آن را حذف کنم تا بعداً
1459
01:12:53,510 –> 01:12:56,830
وقتی رفتم همه چیز را بررسی کنم به یاد بیاورم. اگر
1460
01:12:56,830 –> 01:12:59,210
میدانم اشتباه نبود، یادم میآید
1461
01:12:59,210 –> 01:13:04,850
1462
01:13:04,850 –> 01:13:09,650
1463
01:13:09,650 –> 01:13:12,560
اشکالی ندارد، بنابراین این نسخه محلی است، اوه، میدانم چه اتفاقی افتاده است، متأسفم از ویرایش ساعت گذشته من جان سالم به در نبردم، بنابراین
1464
01:13:12,560 –> 01:13:15,940
محلی وجود دارد و محلی نامحدود وجود دارد
1465
01:13:16,660 –> 01:13:20,530
که مشکل اینجاست،
1466
01:13:26,960 –> 01:13:32,830
پس به دنبال فروشگاه بگردید. سریع و بارگذاری سریع
1467
01:13:32,830 –> 01:13:37,280
در دو و شش در اولی در دو
1468
01:13:37,280 –> 01:13:39,740
و ده در دومی اما آنها
1469
01:13:39,740 –> 01:13:42,920
معکوس شدند بنابراین خطاهای محلی Unbound رخ می دهد
1470
01:13:42,920 –> 01:13:45,200
زیرا وقتی پایتون کد را کامپایل
1471
01:13:45,200 –> 01:13:50,030
می کند یک انتساب را می بیند عملیاتی را می بیند
1472
01:13:50,030 –> 01:13:51,770
که فضای نام محلی را تغییر می دهد
1473
01:13:51,770 –> 01:13:53,660
و می گوید که این یک محلی است،
1474
01:13:53,660 –> 01:13:55,580
زیرا همه تغییرات فضای
1475
01:13:55,580 –> 01:13:58,490
نام در نام های محلی به صورت محلی اتفاق می افتد، آنها
1476
01:13:58,490 –> 01:14:01,370
به طور پیش فرض درست خارج نمی شوند و بنابراین آن را در کد علامت گذاری می کند
1477
01:14:01,370 –> 01:14:02,810
که آه، بله،
1478
01:14:02,810 –> 01:14:06,290
محلی است، بنابراین سعی می کند در مرحله دوم این کار را انجام دهد.
1479
01:14:06,290 –> 01:14:08,990
یکی در اینجا اکسل 86
1480
01:14:08,990 –> 01:14:13,130
هر چیزی را که در آن نام بود به سرعت بارگذاری میکند
1481
01:14:13,130 –> 01:14:14,720
و به آن مقداری که نام
1482
01:14:14,720 –> 01:14:16,580
به آن محدود شده است، تابع را فراخوانی میکند
1483
01:14:16,580 –> 01:14:20,590
تا به آن دسترسی داشته باشید، بنابراین این اساساً
1484
01:14:20,590 –> 01:14:23,030
متأسف است که در جاوا چیست.
1485
01:14:23,030 –> 01:14:26,720
متغیر آن مقداردهی اولیه نشده است این یک
1486
01:14:26,720 –> 01:14:29,180
متغیر بدون مقدار اولیه در پایتون است
1487
01:14:29,180 –> 01:14:30,410
که معمولاً نمیتوانید آن را داشته باشید اما
1488
01:14:30,410 –> 01:14:35,440
نمیتوانید آن را در اینجا داشته باشید،
1489
01:14:35,440 –> 01:14:39,080
اوه بله، من فقط متاسفم که این
1490
01:14:39,080 –> 01:14:42,290
چیزهای جذاب را امتحان کردم و کار میکند اما بعد
1491
01:14:42,290 –> 01:14:44,600
فراموش کردم برای نشان دادن شما به شما و به
1492
01:14:44,600 –> 01:14:46,100
هر حال کار نمی کند، زیرا خیلی گسترده است، بنابراین من
1493
01:14:46,100 –> 01:14:48,010
مجبور نیستم همیشه آنقدر آزاد باشم،
1494
01:14:48,010 –> 01:14:52,220
بنابراین این
1495
01:14:52,220 –> 01:14:53,900
واقعیت برنامه نویسی است که چرا این مشکل انجام نمی شود و
1496
01:14:53,900 –> 01:14:57,770
به شما می گوید که چرا می توانید
1497
01:14:57,770 –> 01:15:00,470
اگر میخواهید
1498
01:15:00,470 –> 01:15:04,130
در مورد جهانی چه کار میکند،
1499
01:15:04,130 –> 01:15:06,400
1500
01:15:08,720 –> 01:15:12,500
این چیزی را که به نظر میرسد محلی است، میگوید این چیزی است که به نظر
1501
01:15:12,500 –> 01:15:15,080
میرسد محلی است، زیرا فضای نامش
1502
01:15:15,080 –> 01:15:16,880
مانند یک تکلیف تغییر میکند، محلی نیست، بلکه
1503
01:15:16,880 –> 01:15:19,160
جهانی است، چه چیزی در مورد جهانی خوب است، میگوید، بنابراین بیرون بروید و آن را از
1504
01:15:19,160 –> 01:15:20,780
فضای نام جهانی دریافت کنید. محدوده سطح ماژول
1505
01:15:20,780 –> 01:15:24,710
خوب است بنابراین اینجا من به مقدار ماژول آن نگاه می کنم که
1506
01:15:24,710 –> 01:15:26,780
آن را test global می نامم و
1507
01:15:26,780 –> 01:15:32,540
باید دریافت کنم باید print B module
1508
01:15:32,540 –> 01:15:37,220
print C inner را دریافت کنم و به مقدار نگاه می کنم که
1509
01:15:37,220 –> 01:15:38,990
باید از ماژول به enter تغییر
1510
01:15:38,990 –> 01:15:42,260
کند و درست کار می کند و اگر
1511
01:15:42,260 –> 01:15:45,890
به همان چیزی نگاه کنید اینجاست بدون بار سریع خواهید دید،
1512
01:15:45,890 –> 01:15:48,170
این یک هدف کم است، بنابراین من
1513
01:15:48,170 –> 01:15:50,290
آنچه را که در واقع میدانم چه چیزی وجود دارد را تغییر دادم،
1514
01:15:50,290 –> 01:15:53,510
بله،
1515
01:15:53,510 –> 01:15:56,780
دو دقیقه یا بیشتر
1516
01:15:56,780 –> 01:15:59,500
به تمرینهای غیرمحلی نگاه کنم
1517
01:18:20,670 –> 01:18:26,150
که چند دقیقه دیگر انجام شده است،
1518
01:18:53,219 –> 01:18:59,730
خوب، قبل از آن حرکت میکنیم. اجازه
1519
01:18:59,730 –> 01:19:03,750
میدهم وقتی صحبت میکنم سؤالی بپرسم
1520
01:19:03,750 –> 01:19:06,810
آیا برای انجام دادن خیلی سریع میروم، ترل
1521
01:19:06,810 –> 01:19:09,180
اگر خیلی سریع است، دستت را بالا بیاور، اگر
1522
01:19:09,180 –> 01:19:12,510
خیلی کند است دستت را بالا بیاور تا
1523
01:19:12,510 –> 01:19:14,070
زمانی که من برای تمرینات به شما میدهم شرایط مناسبی است.
1524
01:19:14,070 –> 01:19:16,290
خیلی ها فکر می کنند من می دانم که دارم
1525
01:19:16,290 –> 01:19:18,570
تمام می کنم، قبل از اینکه اکثر
1526
01:19:18,570 –> 01:19:20,910
شما کارتان را تمام کنید، دارم ادامه می دهم، چند نفر از شما ناراضی هستید
1527
01:19:20,910 –> 01:19:22,380
به این دلیل که من خیلی
1528
01:19:22,380 –> 01:19:26,730
سریع تمرینات را خیلی آهسته انجام می دهم، بسیار
1529
01:19:26,730 –> 01:19:30,630
خوب، ممنون، بسیار خوب، بنابراین غیر محلی چه کاری را انجام می دهد
1530
01:19:30,630 –> 01:19:33,180
ممکن است فکر کنید شاید این باشد که میگوید
1531
01:19:33,180 –> 01:19:34,710
این همان چیزی نیست که در سراسر جهان پیش
1532
01:19:34,710 –> 01:19:36,210
بروید به بیرون اما فقط می گوید برو در
1533
01:19:36,210 –> 01:19:38,160
عوض این یکی نیست، اما جستجو کن تا
1534
01:19:38,160 –> 01:19:40,469
زمانی که یکی را پیدا کنی که ممکن است
1535
01:19:40,469 –> 01:19:43,890
جهانی باشد و بتوانی آن را آزمایش کردی و
1536
01:19:43,890 –> 01:19:51,000
دیدی چه خبر است، بنابراین
1537
01:19:51,000 –> 01:19:52,590
آن را در آنجا تغییر داد، اما تمام نشد
1538
01:19:52,590 –> 01:19:53,760
راهی برای جهانی شدن و دریافت کردم
1539
01:19:53,760 –> 01:19:59,880
زیرا آن را اینجا پیدا کرد، بنابراین
1540
01:19:59,880 –> 01:20:02,690
این یکی را درست پیدا نکرد،
1541
01:20:06,389 –> 01:20:09,239
بنابراین من یک خطای محلی محدود میکنم، درست مثل
1542
01:20:09,239 –> 01:20:12,060
یک تکلیف معمولی،
1543
01:20:12,060 –> 01:20:18,830
یک عملیات فضای نامی است.
1544
01:20:22,030 –> 01:20:25,420
بسیار خوب، پس دوباره به نوعی
1545
01:20:25,420 –> 01:20:27,930
بازتاب کاری که ما با حذف Len انجام دادیم در سطح آنها انجام دادیم،
1546
01:20:27,930 –> 01:20:31,230
1547
01:20:31,230 –> 01:20:33,490
1548
01:20:33,490 –> 01:20:38,880
بسیار
1549
01:20:38,880 –> 01:20:42,190
خوب، من این کار را سریع انجام خواهم داد، فکر می کنم این درست نیست، بنابراین خوب، من فقط می خواهم یک مرور کلی از داخلی ها انجام
1550
01:20:42,190 –> 01:20:44,050
دهم و من قصد ندارم
1551
01:20:44,050 –> 01:20:46,210
هیچ یک از این کدها را توضیح دهم، اما
1552
01:20:46,210 –> 01:20:53,320
اساسا ما 144 داخلی داریم و 67 مورد
1553
01:20:53,320 –> 01:20:55,390
از آنها استثنا هستند، 77 مورد از آنها استثنا
1554
01:20:55,390 –> 01:20:58,570
نیستند، بقیه
1555
01:20:58,570 –> 01:21:03,100
آنها استثنا هستند همه آنها هستند و در اینجا
1556
01:21:03,100 –> 01:21:07,060
اگر به این نگاه کنید. در جایی که سلسله مراتب را مشاهده می کنید،
1557
01:21:07,060 –> 01:21:09,820
متوجه می شوید که استثنا
1558
01:21:09,820 –> 01:21:11,950
بالای استثناهای پایه نیست
1559
01:21:11,950 –> 01:21:13,930
1560
01:21:13,930 –> 01:21:16,990
1561
01:21:16,990 –> 01:21:19,330
اگر واقعاً به آن نیاز دارید، هرگز نباید استثنای پایه را بگیرید یا در کد خود یک بند غیر خالی داشته باشید،
1562
01:21:19,330 –> 01:21:20,920
میتوانید یک استثنای فضایی را قبول کنید،
1563
01:21:20,920 –> 01:21:22,120
تنها زمانی که توصیه میکنم این
1564
01:21:22,120 –> 01:21:23,560
است که در سطح بسیار بالای
1565
01:21:23,560 –> 01:21:25,330
برخی از آنها هستید. کدی را که میخواهید آن را بگیرید،
1566
01:21:25,330 –> 01:21:28,660
وارد شوید و سپس از آن خارج شوید، در غیر این صورت
1567
01:21:28,660 –> 01:21:29,920
همیشه باید استثناها را تا
1568
01:21:29,920 –> 01:21:32,080
آنجا که میتوانید دقیقاً در
1569
01:21:32,080 –> 01:21:34,510
سلسلهمراتب و تا جایی که میتوانید روی یک
1570
01:21:34,510 –> 01:21:37,240
تکه کوچکتر از کد را بگیرید
1571
01:21:37,240 –> 01:21:38,770
تا بتوانید آن را مسدود کنید. شما
1572
01:21:38,770 –> 01:21:41,860
بلوکها را تا حد امکان کوتاه امتحان کردید،
1573
01:21:41,860 –> 01:21:43,300
در واقع به این چیزها نگاه کنید آنچه
1574
01:21:43,300 –> 01:21:45,490
باقی مانده است، اینها موارد دیگری هستند که
1575
01:21:45,490 –> 01:21:48,550
اکثر آنها حدس میزنم
1576
01:21:48,550 –> 01:21:49,960
شما با سومین آنها آشنا خواهید شد
1577
01:21:49,960 –> 01:21:57,480
.
1578
01:21:57,480 –> 01:22:02,920
اگر مجبورید از خرس استفاده نکنید به جز استفاده از استثنا
1579
01:22:02,920 –> 01:22:06,160
و دلیل آن این است
1580
01:22:06,160 –> 01:22:10,420
که خروج از سیستم
1581
01:22:10,420 –> 01:22:12,190
یا وقفه صفحه کلید یا
1582
01:22:12,190 –> 01:22:17,300
خروج مطمئن جنر یا هر چیز دیگری مانند Okay
1583
01:22:17,300 –> 01:22:20,100
[Music] فایده ای ندارد،
1584
01:22:20,100 –> 01:22:23,290
بنابراین چیزی که باقی می ماند خوب وجود دارد دسته ای از
1585
01:22:23,290 –> 01:22:26,590
ty pes و توابع داخلی و در اینجا
1586
01:22:26,590 –> 01:22:27,730
مواردی هستند که نوع
1587
01:22:27,730 –> 01:22:30,040
مجموعه بایت آرایه بایتی کلاس متد
1588
01:22:30,040 –> 01:22:33,579
پیچیده و غیره هستند
1589
01:22:33,579 –> 01:22:34,780
و این تابع یا
1590
01:22:34,780 –> 01:22:36,579
متدهای داخلی وجود دارد، بنابراین اینها همه نام هایی هستند که
1591
01:22:36,579 –> 01:22:39,309
در UH می بینید که می توانید با آنها به دست آورید.
1592
01:22:39,309 –> 01:22:41,980
فضای نام داخلی به جز چند مورد
1593
01:22:41,980 –> 01:22:46,989
دیگر مانند برخی موارد ipython
1594
01:22:46,989 –> 01:22:57,520
بیضی های درست/نادرست بسیار خوب است، بنابراین
1595
01:22:57,520 –> 01:22:59,639
عملیات صبح ما همه این موارد را
1596
01:22:59,639 –> 01:23:04,329
به همراه جهانی و غیر محلی پوشش داده ایم و وقتی
1597
01:23:04,329 –> 01:23:06,219
استثنا را به خوبی قبول می کنید،
1598
01:23:06,219 –> 01:23:07,599
نام به عنوان وجود دارد، بنابراین در واقع یک نام است.
1599
01:23:07,599 –> 01:23:10,829
عملیات namespace آن نام را به فضای نام اضافه میکند یا فضای موجود را
1600
01:23:10,829 –> 01:23:13,659
تغییر میدهد،
1601
01:23:13,659 –> 01:23:17,800
بنابراین تابعی به نام locals یک سری
1602
01:23:17,800 –> 01:23:20,280
چیزها در آن وجود دارد،
1603
01:23:29,390 –> 01:23:34,550
متاسفم بسیار خوب، بنابراین در repple،
1604
01:23:34,550 –> 01:23:36,320
حلقههای چاپی read eval محلیها و Global
1605
01:23:36,320 –> 01:23:45,950
یکسان هستند، بنابراین من می توانم این کار را انجام دهم و سپس
1606
01:23:45,950 –> 01:23:48,830
به مقدار نگاه کنم که من در واقع می توانم مقدار را تغییر دهم
1607
01:23:48,830 –> 01:23:55,760
، اما شما نباید این کار را انجام دهید و
1608
01:23:55,760 –> 01:24:03,290
در اینجا مثالی از این است که چرا
1609
01:24:03,290 –> 01:24:04,910
خیلی خوب است، گاهی اوقات آن طور که فکر
1610
01:24:04,910 –> 01:24:06,530
می کنید درست عمل نمی کند، بنابراین مردم محلی
1611
01:24:06,530 –> 01:24:11,780
چیزی به نام سریع وجود دارد. محلیها، بنابراین من
1612
01:24:11,780 –> 01:24:13,730
هنوز موردی از Global’s یا محلیها را ندیدهام
1613
01:24:13,730 –> 01:24:16,070
که فکر میکردم
1614
01:24:16,070 –> 01:24:19,460
از نظر تغییر دوباره چیزی در
1615
01:24:19,460 –> 01:24:21,140
کد تولید مشکلی ندارم،
1616
01:24:21,140 –> 01:24:23,000
در مواردی که مهم است، مواردی که فقط هک میکنید
1617
01:24:23,000 –> 01:24:25,970
، کاری را که میخواهید انجام میدهند، اما اگر
1618
01:24:25,970 –> 01:24:27,050
شما در حال نوشتن کدی هستید که افراد دیگر
1619
01:24:27,050 –> 01:24:28,790
باید از جمله خودتان پس از مدتی بخوانند،
1620
01:24:28,790 –> 01:24:32,930
مثلاً شش ماه بعد از آن اجتناب کنید،
1621
01:24:32,930 –> 01:24:34,460
بیایید کمی به بیانیه import نگاهی بیندازیم،
1622
01:24:34,460 –> 01:24:37,220
هیچ سؤالی وجود ندارد.
1623
01:24:37,220 –> 01:24:39,020
1624
01:24:39,020 –> 01:24:42,170
1625
01:24:42,170 –> 01:24:45,500
فقط نامهای جدید را کاملاً به من نشان میدهد،
1626
01:24:45,500 –> 01:24:46,010
1627
01:24:46,010 –> 01:24:50,890
بنابراین اگر من یک CSV وارد
1628
01:24:50,950 –> 01:24:54,290
کنم، یک عملیات فضای نام است، نه تنها
1629
01:24:54,290 –> 01:24:56,420
یک عملیات فضای نام است، بلکه
1630
01:24:56,420 –> 01:25:00,200
import نام CSV را میگیرد که در
1631
01:25:00,200 –> 01:25:02,270
فضای نام وجود ندارد یا ممکن است نباشد، میرود و به
1632
01:25:02,270 –> 01:25:05,180
دنبال یک ماژول با نقل قول نام نقل قول CSV
1633
01:25:05,180 –> 01:25:07,670
مانند آن است که به دنبال رشته ای است که آن
1634
01:25:07,670 –> 01:25:09,920
ماژول را وارد می کند یا آن را از ماژول های بارگذاری شده از
1635
01:25:09,920 –> 01:25:12,620
قبل می گیرد و سپس
1636
01:25:12,620 –> 01:25:14,840
نامی را در فضای نام فعلی CSV ایجاد می کند که
1637
01:25:14,840 –> 01:25:17,240
به آن ماژول اشاره می کند و این همان چیزی است که در
1638
01:25:17,240 –> 01:25:21,740
حال انجام است. خوب پس ببینید آیا من حقیقت را می گویم
1639
01:25:21,740 –> 01:25:21,950
1640
01:25:21,950 –> 01:25:24,710
بله خوب پس حالا اگر به
1641
01:25:24,710 –> 01:25:26,720
نام CSV دسترسی پیدا کنم با خطای نام مواجه نمی شوم،
1642
01:25:26,720 –> 01:25:28,490
اوه ماژول آن از هر کجا که
1643
01:25:28,490 –> 01:25:35,090
باشد می توانم به نام آن نگاه کنم یا حداقل
1644
01:25:35,090 –> 01:25:39,170
آن را ببینم. اوه اسامی هستند که با زیرخط شروع نمیشوند
1645
01:25:39,170 –> 01:25:41,409
،
1646
01:25:41,409 –> 01:25:43,239
من فقط میخواهم فعلاً برخی از
1647
01:25:43,239 –> 01:25:45,219
جزئیات را پنهان کنم و همه این
1648
01:25:45,219 –> 01:25:48,340
چیزها خوب است تا بتوانم به
1649
01:25:48,340 –> 01:25:50,730
ویژگی آن شی ماژول دسترسی داشته باشم و اینجاست
1650
01:25:50,730 –> 01:25:53,280
بله،
1651
01:25:53,280 –> 01:25:56,460
به یاد داشته باشید چه دورانی این ویژگی در اینجا به ما می دهد
1652
01:25:56,460 –> 01:25:58,510
که درست است، من دیگر نتوانستم
1653
01:25:58,510 –> 01:26:00,130
خودم را حذف کنم، نه دیگر لبنیات HP است،
1654
01:26:00,130 –> 01:26:01,960
زیرا ماژول ها از
1655
01:26:01,960 –> 01:26:06,040
نظر جستجوی نام فقط اشیاء
1656
01:26:06,040 –> 01:26:10,239
1657
01:26:10,239 –> 01:26:12,460
1658
01:26:12,460 –> 01:26:16,600
هستند. ماژولها لطفاً اوه، این
1659
01:26:16,600 –> 01:26:19,750
بدتر است به آن نگاه کنید، بنابراین هیچ چیز
1660
01:26:19,750 –> 01:26:21,550
مانع شما از انجام این کار درست
1661
01:26:21,550 –> 01:26:24,460
پایتون نیست، کاری را که میخواهید انجام دهید، بنابراین کارهای
1662
01:26:24,460 –> 01:26:30,510
احمقانه را درست انجام ندهید، بیایید
1663
01:26:30,510 –> 01:26:34,179
از USB Reader CSV وارداتی
1664
01:26:34,179 –> 01:26:36,280
انجام دهیم تا چه کاری انجام دهد. از CSV قرار نیست
1665
01:26:36,280 –> 01:26:37,659
فضای نام فعلی را تغییر دهد
1666
01:26:37,659 –> 01:26:40,270
ce، خواننده import در
1667
01:26:40,270 –> 01:26:43,179
آن ماژول جستجو می کند که فضای نام خود را
1668
01:26:43,179 –> 01:26:45,340
به عنوان CSV derp یافته است که به فضای نام فعلی می رود،
1669
01:26:45,340 –> 01:26:46,780
بنابراین این فقط
1670
01:26:46,780 –> 01:26:48,070
یک نام به فضای نام فعلی ما اضافه می کند که
1671
01:26:48,070 –> 01:26:51,100
خواننده CSP است و بنابراین خواننده CSV آنها
1672
01:26:51,100 –> 01:26:55,900
نام جدید را اضافه می کند. که اضافه شد و CSV dot
1673
01:26:55,900 –> 01:26:58,570
Reader و CSV Reader دو
1674
01:26:58,570 –> 01:27:06,690
نام برای نام یک شی هستند،
1675
01:27:08,540 –> 01:27:14,600
خوب شما می شناسید یا چه کسی این کار را انجام داده است،
1676
01:27:14,600 –> 01:27:17,170
بنابراین بیایید CSV را
1677
01:27:17,170 –> 01:27:19,480
حذف کنیم که نام را از فضای نام حذف می کند
1678
01:27:19,480 –> 01:27:23,270
آن را به عنوان ماژول CSV وارد می کند، بنابراین اکنون من
1679
01:27:23,270 –> 01:27:25,520
ماژول زیرخط CSP را دریافت کردم زیرا نام آن در
1680
01:27:25,520 –> 01:27:31,190
فضای نام فعلی و ماژول خوان CSV
1681
01:27:31,190 –> 01:27:33,500
CSU tur است. این درست یا
1682
01:27:33,500 –> 01:27:37,880
نادرست است، من آن را بعد از تغییر آن وارد کردم،
1683
01:27:37,880 –> 01:27:39,580
یعنی او می خواهد کپی جدید را به من بدهد،
1684
01:27:39,580 –> 01:27:41,930
نه یک بار که ماژول وارد شد.
1685
01:27:41,930 –> 01:27:43,850
آنجا می ماند هر
1686
01:27:43,850 –> 01:27:46,250
بار که از آن درخواست می کنید وارد
1687
01:27:46,250 –> 01:27:49,730
نمی شود، فقط آن را رها می کند تا زمانی که
1688
01:27:49,730 –> 01:27:53,600
خارج شود یا پاک شود، حدس می زنم
1689
01:27:53,600 –> 01:27:56,990
که درست باشد، حتی اگر اکنون
1690
01:27:56,990 –> 01:28:01,520
نویسنده مشکلی ندارد، خیلی بدیهی است، اما شاید
1691
01:28:01,520 –> 01:28:03,800
آن چیزی نیست. است شیرینی ریاضی اگر اینتر را بزنم
1692
01:28:03,800 –> 01:28:16,160
اینجا چه اتفاقی میافتد نام خطا نام خطا نام
1693
01:28:16,160 –> 01:28:20,240
خطا یک مادیان میفهمید که
1694
01:28:20,240 –> 01:28:22,640
همه این خطاهای نام وجود دارد، پس
1695
01:28:22,640 –> 01:28:23,720
چرا به من یک خطای نام نمیدهد
1696
01:28:23,720 –> 01:28:25,370
، زیرا آنچه قبلاً گفتم
1697
01:28:25,370 –> 01:28:27,920
پایتون دستور import را ویژه میبیند.
1698
01:28:27,920 –> 01:28:29,720
این فقط یک تابع نیست، یک
1699
01:28:29,720 –> 01:28:31,460
دستور است و با آن شناسه
1700
01:28:31,460 –> 01:28:33,710
به عنوان نامی برخورد میکند که باید فضای نام را پیدا کرده و به آن اضافه کند
1701
01:28:33,710 –> 01:28:35,210
، بنابراین آن را امتحان نمیکند،
1702
01:28:35,210 –> 01:28:37,880
در واقع این را جستجو نمیکند،
1703
01:28:37,880 –> 01:28:39,710
سعی نمیکند با جستجو در آن، از آن نام دفاع کند.
1704
01:28:39,710 –> 01:28:40,940
فضای نام فعلی چون
1705
01:28:40,940 –> 01:28:42,170
آن را به فضای نام فعلی اضافه میکند،
1706
01:28:42,170 –> 01:28:44,960
بنابراین مانند همان فضای نامی در آنجا قرار میگیرد، بنابراین
1707
01:28:44,960 –> 01:28:50,780
اگر نیاز دارید
1708
01:28:50,780 –> 01:28:52,850
چیزی را وارد کنید که نام آن
1709
01:28:52,850 –> 01:28:54,110
را نمیدانید، میتوانید از
1710
01:28:54,110 –> 01:28:59,750
ماژول import Lib استفاده کنید. این
1711
01:28:59,750 –> 01:29:02,680
ماژول ریاضی را به درستی وارد میکند،
1712
01:29:06,220 –> 01:29:08,930
بنابراین اگر واردکننده ماژولهای ریاضی
1713
01:29:08,930 –> 01:29:11,230
میتوانم این کار را نکنم،
1714
01:29:12,460 –> 01:29:15,230
زیرا مهمتر از همه، ماژول واردات
1715
01:29:15,230 –> 01:29:16,940
فقط تابع است، هوشمند
1716
01:29:16,940 –> 01:29:17,900
نیست، نمیداند چگونه فضای نام فعلی را دوباره تغییر دهد،
1717
01:29:17,900 –> 01:29:19,880
زیرا اگر فقط
1718
01:29:19,880 –> 01:29:21,320
یک تابع دلخواه نامیده میشود، میتواند
1719
01:29:21,320 –> 01:29:22,880
فضای نام فراخوانی را تغییر دهد
1720
01:29:22,880 –> 01:29:25,880
که ممکن است ناخوشایند باشد،
1721
01:29:25,880 –> 01:29:28,100
مشکلات زیادی ممکن است ناشی از آن باشد، بنابراین اگر من
1722
01:29:28,100 –> 01:29:30,950
PI ریاضی را امتحان کنم چیزی دریافت نمیکنم اما
1723
01:29:30,950 –> 01:29:32,740
متوجه میشوید که چیزی که برگردانده است یک
1724
01:29:32,740 –> 01:29:35,480
شی ماژول در هما