در این مطلب، ویدئو دوره پیشرفته برنامه نویسی پایتون | پایتون برای Cloud EP2 با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 1:26:47
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,240 –> 00:00:02,240
سلام همه به کانال من خوش آمدید
2
00:00:02,240 –> 00:00:03,840
این مال آنیتا است و اکنون شما در حال تماشای
3
00:00:03,840 –> 00:00:05,520
پایتون پیشرفته هستید
4
00:00:05,520 –> 00:00:07,359
در این جلسه ما
5
00:00:07,359 –> 00:00:10,559
تابع دامنه متغیر موضوعات پیشرفته کلاس ها
6
00:00:10,559 –> 00:00:12,960
بسته های مدیریت فایل در
7
00:00:12,960 –> 00:00:15,280
دایرکتوری پایتون مدیریت در پایتون نحوه استفاده از
8
00:00:15,280 –> 00:00:18,000
json در ماژول درخواست پایتون
9
00:00:18,000 –> 00:00:20,400
محیط مجازی floss و جنگو پس حالا
10
00:00:20,400 –> 00:00:22,160
بیایید شروع کنیم اما قبل از آن اگر
11
00:00:22,160 –> 00:00:23,600
هنوز کانال من را سابسکرایب نکردید، کانال را
12
00:00:23,600 –> 00:00:25,119
سابسکرایب کنید و روی نماد زنگ کلیک کنید
13
00:00:25,119 –> 00:00:26,960
تا
14
00:00:26,960 –> 00:00:29,119
هر زمان که ویدیوهای جدید آپلود کردم به شما اطلاع داده شود، خوب حالا
15
00:00:29,119 –> 00:00:30,800
که این کار را انجام دادید، شروع کنیم
16
00:00:30,800 –> 00:00:32,558
حالا بیایید در مورد دامنه متغیر صحبت کنیم،
17
00:00:32,558 –> 00:00:33,760
بنابراین سه نوع
18
00:00:33,760 –> 00:00:35,920
دامنه متغیر جهانی محلی و غیرمحلی در دسترس است
19
00:00:35,920 –> 00:00:37,760
، حالا بیایید در مورد هر یک از
20
00:00:37,760 –> 00:00:39,520
این دامنه متغیرها یاد بگیریم، اولی
21
00:00:39,520 –> 00:00:41,920
دامنه جهانی هر متغیری است
22
00:00:41,920 –> 00:00:43,440
که در بدنه اصلی
23
00:00:43,440 –> 00:00:46,320
پایتون ایجاد می شود. کد اما خارج از هر تابعی
24
00:00:46,320 –> 00:00:48,320
که متغیر جهانی نامیده می شود و
25
00:00:48,320 –> 00:00:49,840
دامنه این متغیر جهانی یک
26
00:00:49,840 –> 00:00:51,360
محدوده جهانی است،
27
00:00:51,360 –> 00:00:54,000
به ویژه اگر یک متغیر تعریف کنید، بسیار خوب است. ble
28
00:00:54,000 –> 00:00:56,399
داخل یک تابع اگر از
29
00:00:56,399 –> 00:00:58,239
کلمه کلیدی global استفاده کنید تبدیل به یک جهانی می شود، بنابراین
30
00:00:58,239 –> 00:01:00,239
متغیرهای محلی چه هستند، بنابراین
31
00:01:00,239 –> 00:01:02,000
متغیرهای محلی هر متغیری است
32
00:01:02,000 –> 00:01:04,239
که در داخل یک تابع تعریف شده باشد، یک
33
00:01:04,239 –> 00:01:06,400
متغیر محلی است و این
34
00:01:06,400 –> 00:01:08,159
محدوده مختلف محلی فقط برای آن تابع محلی است.
35
00:01:08,159 –> 00:01:10,000
و سپس دقیقاً یک
36
00:01:10,000 –> 00:01:12,080
محدوده غیر محلی چیست، بنابراین هر متغیری که
37
00:01:12,080 –> 00:01:14,880
نه محلی و نه جهانی است، غیر محلی نامیده می شود.
38
00:01:14,880 –> 00:01:17,200
39
00:01:17,200 –> 00:01:19,200
40
00:01:19,200 –> 00:01:21,360
41
00:01:21,360 –> 00:01:23,119
حالا اجازه دهید
42
00:01:23,119 –> 00:01:24,479
مثال هایی را به شما نشان دهم تا حتی بهتر متوجه شوید،
43
00:01:24,479 –> 00:01:27,680
خب، پس این کد را اینجا ببینید
44
00:01:27,680 –> 00:01:30,479
که در آن uh x من را تعریف می کنم به عنوان
45
00:01:30,479 –> 00:01:32,159
مقدار ساده مقدار رشته ساده من یک
46
00:01:32,159 –> 00:01:34,960
متغیر خوب هستم و سپس در داخل
47
00:01:34,960 –> 00:01:37,280
تابعی که x را به عنوان چاپ می کنم مانند x در داخل
48
00:01:37,280 –> 00:01:39,439
تابع و سپس اجرای تابع
49
00:01:39,439 –> 00:01:41,520
و دوباره همین کار را
50
00:01:41,520 –> 00:01:44,079
در خارج از تابع انجام میدهم و این
51
00:01:44,079 –> 00:01:47,840
برای اثبات این است که این مقدار x در
52
00:01:47,840 –> 00:01:50,159
داخل تابع و همچنین خارج
53
00:01:50,159 –> 00:01:52,560
از تابع نیز موجود است. y حالا بیایید
54
00:01:52,560 –> 00:01:54,560
آن را اجرا کنیم و ببینیم خروجی چیست، بنابراین هر
55
00:01:54,560 –> 00:01:56,399
نمونه کدی را که در طول این نسخه نمایشی نشان
56
00:01:56,399 –> 00:01:59,200
میدهم، در داخل git repo خود پیدا میکنیم، سپس
57
00:01:59,200 –> 00:02:01,360
در پوشه قسمت دوم، خوب است،
58
00:02:01,360 –> 00:02:02,719
بنابراین اگر میخواهید از کد github استفاده کنید، میتوانید از آن استفاده کنید.
59
00:02:02,719 –> 00:02:04,960
از آن استفاده کنید بسیار خوب حالا
60
00:02:04,960 –> 00:02:07,680
که به شما گفتم چگونه آن را پیدا کنید،
61
00:02:07,680 –> 00:02:09,199
بنابراین این نرم افزار را اجرا کنید که متغیر است،
62
00:02:09,199 –> 00:02:11,520
تابع
63
00:02:11,520 –> 00:02:12,720
64
00:02:12,720 –> 00:02:14,160
زیرخط زیرخط، متغیر زیرخط محدوده زیرخط، مثالی است که
65
00:02:14,160 –> 00:02:16,959
پی و می توانید x را در داخل تابع ببینید،
66
00:02:16,959 –> 00:02:18,400
بنابراین البته تابع از آنجایی که من اینجا تماس می گیرم
67
00:02:18,400 –> 00:02:20,800
بنابراین این تابع
68
00:02:20,800 –> 00:02:22,319
فراخوانی می شود و در این تابع من
69
00:02:22,319 –> 00:02:23,920
اساساً فقط x را چاپ می کنم و می
70
00:02:23,920 –> 00:02:26,160
گویم این فراخوانی از x است و
71
00:02:26,160 –> 00:02:28,000
در داخل تابع البته این یک
72
00:02:28,000 –> 00:02:29,840
متغیر سراسری است که در
73
00:02:29,840 –> 00:02:33,200
هر نقطه از کد قابل دسترسی است و
74
00:02:33,200 –> 00:02:34,560
در کد موجود است.
75
00:02:34,560 –> 00:02:35,440
اگر من
76
00:02:35,440 –> 00:02:36,959
آن را در خارج چاپ کنم، مطمئناً چاپ خواهد شد،
77
00:02:36,959 –> 00:02:39,680
حالا چه اتفاقی می افتد اگر
78
00:02:39,680 –> 00:02:42,239
نام متغیر جهانی و داخل یک
79
00:02:42,239 –> 00:02:43,280
تابع،
80
00:02:43,280 –> 00:02:46,000
هر دو نام متغیر یکسانی داشته باشند،
81
00:02:46,000 –> 00:02:48,319
بنابراین نتیجه پایتون چیست؟
82
00:02:48,319 –> 00:02:50,800
این متغیر درونی را
83
00:02:50,800 –> 00:02:53,200
بهعنوان متغیری متفاوت از متغیر سراسری تکرار کنید،
84
00:02:53,200 –> 00:02:55,440
بنابراین در داخل تابع، متغیری
85
00:02:55,440 –> 00:02:57,519
که تعریف میکنید، اولویت را
86
00:02:57,519 –> 00:02:59,680
نسبت به مقدار متغیر جهانی دریافت میکند، خوب حالا
87
00:02:59,680 –> 00:03:01,040
بیایید آن را اجرا کنیم و ببینیم خروجی چیست،
88
00:03:01,040 –> 00:03:02,239
بنابراین
89
00:03:02,239 –> 00:03:06,879
پایتون 3 و سپس مثال متغیر فایل.
90
00:03:06,879 –> 00:03:09,280
و می توانید داخل تابعی را
91
00:03:09,280 –> 00:03:11,519
که تعریف کرده ایم i am a local variable و
92
00:03:11,519 –> 00:03:13,040
می توانید ببینید که به عنوان یک متغیر محلی دریافت
93
00:03:13,040 –> 00:03:14,239
می
94
00:03:14,239 –> 00:03:16,560
شود اما مقدار متغیر خارجی را تغییر نمی دهد
95
00:03:16,560 –> 00:03:18,640
زیرا تابع خارجی را می بینید
96
00:03:18,640 –> 00:03:20,560
من یک متغیر جهانی هستم
97
00:03:20,560 –> 00:03:22,239
بنابراین این همان چیزی است که در اینجا تعریف کردید. درست است که
98
00:03:22,239 –> 00:03:25,599
این مقدار تغییر نکرده است خوب فقط
99
00:03:25,599 –> 00:03:28,080
تابع داخلی متفاوت چاپ می شود اما
100
00:03:28,080 –> 00:03:30,560
این متغیر کاملاً سالم است، بنابراین
101
00:03:30,560 –> 00:03:32,959
اگر
102
00:03:32,959 –> 00:03:35,200
مقدار متغیر جهانی را مانند مقدار
103
00:03:35,200 –> 00:03:37,360
داخلی هر تابعی به عنوان یک متغیر محلی تعریف کنید، آن قسمت را به خاطر بسپارید.
104
00:03:37,360 –> 00:03:39,760
105
00:03:39,760 –> 00:03:41,440
به عنوان یک متغیر دیگر نام
106
00:03:41,440 –> 00:03:43,440
خوب است، پس این است که شما باید
107
00:03:43,440 –> 00:03:44,640
آن را به خوبی درک
108
00:03:44,640 –> 00:03:47,280
کنید، حالا فرض کنید می خواهید هر
109
00:03:47,280 –> 00:03:49,440
متغیری را که در داخل یک تعریف شده است بسازید.
110
00:03:49,440 –> 00:03:51,920
تابعی که میخواهید آن را به عنوان یک
111
00:03:51,920 –> 00:03:54,400
متغیر سراسری بسازید، بله، درست عجله
112
00:03:54,400 –> 00:03:56,879
کردید، میتوانید این کار را انجام دهید، اما برای انجام این کار باید
113
00:03:56,879 –> 00:03:59,920
از یک کلمه کلیدی خاص به نام global استفاده
114
00:03:59,920 –> 00:04:01,599
کنید، بنابراین فرض کنید که در داخل یک تابع
115
00:04:01,599 –> 00:04:03,439
قرار دارد، باید یک متغیر محلی باشد،
116
00:04:03,439 –> 00:04:06,239
اما اگر میخواهید شما می توانید این
117
00:04:06,239 –> 00:04:08,720
متغیر را به عنوان یک متغیر جهانی بسازید، ببینید چگونه
118
00:04:08,720 –> 00:04:10,560
این کار را انجام دادم، بنابراین من فقط
119
00:04:10,560 –> 00:04:11,840
تابعی را تعریف کردم که یک تابع است،
120
00:04:11,840 –> 00:04:13,280
می توانید آن را هر چه دوست دارید نامگذاری کنید،
121
00:04:13,280 –> 00:04:16,320
سپس در داخل تابعی که من می گویم
122
00:04:16,320 –> 00:04:19,358
x global و به این معنی که x است. یک
123
00:04:19,358 –> 00:04:21,839
متغیر سراسری okay اکنون
124
00:04:21,839 –> 00:04:24,560
مقدار x را 500 میدهم okay و
125
00:04:24,560 –> 00:04:26,639
آن را در داخل تابع چاپ میکنم بنابراین x در داخل
126
00:04:26,639 –> 00:04:29,040
تابع هر مقدار x باشد و
127
00:04:29,040 –> 00:04:30,960
سپس تابع خارج
128
00:04:30,960 –> 00:04:32,880
از تابع را صدا میزنم البته و سپس دوباره من
129
00:04:32,880 –> 00:04:34,400
130
00:04:34,400 –> 00:04:36,400
مقدار x را چاپ می کنم اکنون چه اتفاقی می افتد، شما
131
00:04:36,400 –> 00:04:39,120
مقدار x را حتی در خارج از تابع نیز قابل دسترسی خواهید دید
132
00:04:39,120 –> 00:04:41,680
، فقط به این دلیل که از
133
00:04:41,680 –> 00:04:44,000
این کلمه کلیدی سراسری x استفاده کرده اید، آن
134
00:04:44,000 –> 00:04:45,520
تبدیل به یک متغیر جهانی می شود، بنابراین هر
135
00:04:45,520 –> 00:04:47,759
مقداری را که در اینجا اختصاص دهید، همچنان ac خواهد بود.
136
00:04:47,759 –> 00:04:49,440
تابع
137
00:04:49,440 –> 00:04:51,680
outro نیز قابل دسترسی است، پس حالا بیایید آن را اجرا کنیم
138
00:04:51,680 –> 00:04:54,160
و ببینیم که x داخل
139
00:04:54,160 –> 00:04:55,840
تابع 500 است البته زیرا ما 500 تعریف می کنیم،
140
00:04:55,840 –> 00:04:57,040
141
00:04:57,040 –> 00:04:58,400
اما حتی
142
00:04:58,400 –> 00:05:00,320
خارج از تابع نیز می گویند
143
00:05:00,320 –> 00:05:03,280
که x خارج از تابع 500 است درست است.
144
00:05:03,280 –> 00:05:05,440
به این ترتیب است که می توانید با استفاده از کلمه کلیدی جهانی، هر متغیر محلی را به
145
00:05:05,440 –> 00:05:07,600
یک متغیر
146
00:05:07,600 –> 00:05:09,600
جهانی تبدیل کنید Okay اکنون که
147
00:05:09,600 –> 00:05:11,360
متغیر جهانی را درک کرده اید، بیایید
148
00:05:11,360 –> 00:05:13,360
متغیر محلی را درک کنیم، بنابراین اجازه دهید
149
00:05:13,360 –> 00:05:14,880
اکنون به شما نشان دهم بیایید سعی کنیم
150
00:05:14,880 –> 00:05:17,199
دامنه متغیر محلی را درک کنیم، بنابراین
151
00:05:17,199 –> 00:05:18,800
اینجا را ببینید تابع نمونه
152
00:05:18,800 –> 00:05:21,199
ای که من اینجا تعریف می کنم و
153
00:05:21,199 –> 00:05:23,600
مقدار x را 500 می دهم و آن را چاپ می کنم بگو x
154
00:05:23,600 –> 00:05:25,360
در داخل تابع x است که
155
00:05:25,360 –> 00:05:27,600
البته مقدار متغیری است که من در اینجا می دهم
156
00:05:27,600 –> 00:05:28,400
157
00:05:28,400 –> 00:05:30,000
و اگر اجرا کنید خوب کار می کند.
158
00:05:30,000 –> 00:05:32,240
اما وقتی میخواهم به
159
00:05:32,240 –> 00:05:34,880
مقدار x خارج از تابع دسترسی پیدا کنم، یک
160
00:05:34,880 –> 00:05:36,720
خطایی ایجاد میکند، بنابراین اجازه دهید آن را اجرا کنم تا
161
00:05:36,720 –> 00:05:39,199
شما آن را به طور واضح درک کنید و میتوانید
162
00:05:39,199 –> 00:05:41,120
ببینید که خطا میدهد، بنابراین آن
163
00:05:41,120 –> 00:05:43,919
خطای نام را میگوید، نام x را میگوید. دفی نیست
164
00:05:43,919 –> 00:05:45,759
ned چون در داخل یک تابع تعریف شده
165
00:05:45,759 –> 00:05:47,600
است و شما از هیچ کوئری
166
00:05:47,600 –> 00:05:49,360
مانند سراسری یا چیزی درست استفاده نمی کنید، به
167
00:05:49,360 –> 00:05:50,720
همین دلیل است که خطا می دهد و می گوید که x
168
00:05:50,720 –> 00:05:53,680
تعریف نشده است، بنابراین اگر
169
00:05:53,680 –> 00:05:54,639
آن را اجرا کنیم
170
00:05:54,639 –> 00:05:57,919
و ذخیره کنیم و فقط صفحه را پاک کنیم
171
00:05:57,919 –> 00:06:00,960
و آن را اجرا کنید خوب کار می کند، می توانید ببینید که
172
00:06:00,960 –> 00:06:03,280
x داخل تابع 500 است، بنابراین اکنون می بینید
173
00:06:03,280 –> 00:06:05,199
که کار می کند و x داخل
174
00:06:05,199 –> 00:06:08,080
تابع x است، بنابراین این یک محدوده محلی است زیرا ما
175
00:06:08,080 –> 00:06:09,600
در داخل تابع تعریف شده ایم و
176
00:06:09,600 –> 00:06:11,680
آن را به یک متغیر جهانی تبدیل نکرده ایم. بسیار خوب، پس
177
00:06:11,680 –> 00:06:13,440
با دقت درک کنید اگر سعی کنید
178
00:06:13,440 –> 00:06:15,360
از این متغیر خارج از
179
00:06:15,360 –> 00:06:17,600
تابع استفاده کنید، حتماً با خطا مواجه خواهید شد،
180
00:06:17,600 –> 00:06:19,600
حالا که
181
00:06:19,600 –> 00:06:21,280
متغیر محدوده محلی را فهمیدید، بیایید در مورد
182
00:06:21,280 –> 00:06:22,560
نمره متغیر غیر محلی آن را بفهمیم و این
183
00:06:22,560 –> 00:06:25,039
خیلی جالب است، خوب است، اجازه دهید
184
00:06:25,039 –> 00:06:26,800
در اینجا توضیح دهم. می توانم ببینم که دارم تابعی را تعریف می کنم
185
00:06:26,800 –> 00:06:28,720
که تابع بیرونی است
186
00:06:28,720 –> 00:06:30,880
و سپس مقدار x را می دهم که مانند x
187
00:06:30,880 –> 00:06:33,280
برابر است با مقدار محلی هستم، اوکی و سپس
188
00:06:33,280 –> 00:06:35,360
دوباره در داخل آن تابع از
189
00:06:35,360 –> 00:06:37,680
تابع خارجی است، من تعریف می کنم uh
190
00:06:37,680 –> 00:06:39,120
تابع دیگری که تابع داخلی است،
191
00:06:39,120 –> 00:06:40,720
اکنون به آن تابع حالت جدید
192
00:06:40,720 –> 00:06:44,479
می گویند okay و
193
00:06:44,479 –> 00:06:46,800
من می گویم x غیر محلی در لحظه ای که می گویم x غیرمحلی
194
00:06:46,800 –> 00:06:49,520
است، یعنی این دیگر یک
195
00:06:49,520 –> 00:06:52,000
متغیر محلی نیست، اما باز هم اینطور است. یک
196
00:06:52,000 –> 00:06:54,080
متغیر سراسری نیست، بنابراین اگر سعی کنید به
197
00:06:54,080 –> 00:06:55,440
این متغیر در خارج از این
198
00:06:55,440 –> 00:06:57,520
تابع خارجی دسترسی پیدا کنید، به شما خطا می دهد OK، اما
199
00:06:57,520 –> 00:07:00,000
اگر سعی کنید به این یکی در داخل تابع سفارش دسترسی پیدا
200
00:07:00,000 –> 00:07:02,080
کنید، هیچ خطایی وجود ندارد، خوب
201
00:07:02,080 –> 00:07:03,759
ببینید اینجا من مقدار x را می دهم.
202
00:07:03,759 –> 00:07:05,919
برابر با i یک مقدار غیرمحلی است، سپس آن را
203
00:07:05,919 –> 00:07:07,520
چاپ می کنم، تابع داخلی را فراخوانی می کنم
204
00:07:07,520 –> 00:07:09,039
و در اینجا
205
00:07:09,039 –> 00:07:11,120
تخصیص متغیر اتفاق می افتد و سپس دوباره
206
00:07:11,120 –> 00:07:13,039
خارج از تابع داخلی، من
207
00:07:13,039 –> 00:07:15,440
مقدار x را مانند خواندن معمولی فراخوانی می کنم
208
00:07:15,440 –> 00:07:17,280
که باید باشد. این را چاپ کنید، اما چه
209
00:07:17,280 –> 00:07:18,479
اتفاقی خواهد افتاد، بگذارید بگوییم که بسیار جالب است،
210
00:07:18,479 –> 00:07:20,800
بنابراین پس از تعریف تابع خارجی
211
00:07:20,800 –> 00:07:22,400
از خارج از تابع خارجی،
212
00:07:22,400 –> 00:07:24,400
تابع خارجی را فراخوانی میکنم تا بتوانیم
213
00:07:24,400 –> 00:07:26,560
خروجی را ببینیم، حالا بیایید آن را اجرا کنیم
214
00:07:26,560 –> 00:07:28,080
و ببینیم چیست خروجی پس
215
00:07:28,080 –> 00:07:29,440
بیایید ج آن را یاد بگیرید
216
00:07:29,440 –> 00:07:31,520
و ببینید اجرای آن
217
00:07:31,520 –> 00:07:32,560
را ببینید، می توانید ببینید
218
00:07:32,560 –> 00:07:35,199
x برابر است با من یک مقدار غیر محلی هستم و
219
00:07:35,199 –> 00:07:36,880
ببینید زیرا x برابر با
220
00:07:36,880 –> 00:07:39,840
مقدار غیر محلی است، اما از آنجایی که ما
221
00:07:39,840 –> 00:07:42,639
این کلمه کلیدی غیر محلی را ذکر کردیم که
222
00:07:42,639 –> 00:07:44,400
دیگر مقدار محلی نیست و از آنجایی که شما دارید
223
00:07:44,400 –> 00:07:47,120
مقدار x را تغییر داد، به این معنی که این
224
00:07:47,120 –> 00:07:49,280
مقدار در واقع به این تغییر میکند،
225
00:07:49,280 –> 00:07:51,520
به همین دلیل است که من همین کار را در اینجا انجام میدهم، مثل اینکه
226
00:07:51,520 –> 00:07:54,400
من یک مقدار غیرمحلی هستم در اینجا و خارج
227
00:07:54,400 –> 00:07:57,039
از تابع داخلی نیز مقدار x هنگامی
228
00:07:57,039 –> 00:07:59,599
که میخواهم آن را در اینجا چاپ کنم. در داخل این
229
00:07:59,599 –> 00:08:01,520
تابع بیرونی به سادگی من
230
00:08:01,520 –> 00:08:03,840
مقدار x را چاپ میکنم من همان
231
00:08:03,840 –> 00:08:06,639
مقدار را دریافت میکنم من مقدار محلی نیستم زیرا
232
00:08:06,639 –> 00:08:08,479
کلمه کلیدی غیرمحلی I need مقدار را در اینجا تغییر دهد
233
00:08:08,479 –> 00:08:10,160
بسیار خوب، بنابراین اکنون میدانید که
234
00:08:10,160 –> 00:08:12,000
دامنه جهانی چیست و محلی چیست scope
235
00:08:12,000 –> 00:08:14,080
و دامنه غیرمحلی چیست خوب حالا بیایید در
236
00:08:14,080 –> 00:08:16,080
مورد تابع یاد بگیریم موضوعات پیشرفته
237
00:08:16,080 –> 00:08:17,919
خوب است و اولین مورد در اینجا
238
00:08:17,919 –> 00:08:19,759
مستندات docstring است بنابراین از
239
00:08:19,759 –> 00:08:22,000
رشته مستندسازی یا docstring
240
00:08:22,000 –> 00:08:24,240
برای توصیف عملکرد تابع استفاده می شود
241
00:08:24,240 –> 00:08:26,319
که می توانید در مثال بالا مشاهده کنید.
242
00:08:26,319 –> 00:08:29,039
اوه دادن t سه کد اوه، سپس من
243
00:08:29,039 –> 00:08:31,039
مقداری خط میدهم، مانند این شبکه تابع،
244
00:08:31,039 –> 00:08:32,958
شخصی با استفاده از پارامتر نام
245
00:08:32,958 –> 00:08:35,120
246
00:08:35,120 –> 00:08:37,279
247
00:08:37,279 –> 00:08:38,958
248
00:08:38,958 –> 00:08:40,719
پارامترها
249
00:08:40,719 –> 00:08:41,839
باید پذیرفته شوند، بنابراین
250
00:08:41,839 –> 00:08:44,399
صادقانه بگوییم چه عملکردی دارد و
251
00:08:44,399 –> 00:08:45,600
اینگونه می توانید مستندات خود را بهبود ببخشید،
252
00:08:45,600 –> 00:08:47,200
253
00:08:47,200 –> 00:08:48,959
حالا دومی تابع ناشناس یا
254
00:08:48,959 –> 00:08:50,000
لامبدا است و این بسیار
255
00:08:50,000 –> 00:08:52,160
مهم است، البته در پایتون تابعی
256
00:08:52,160 –> 00:08:54,480
که یک تابع تعریف شده ندارد. نامی که تابع ناشناس نامیده می شود
257
00:08:54,480 –> 00:08:56,560
و این
258
00:08:56,560 –> 00:08:58,320
تابع ناشناس با استفاده از
259
00:08:58,320 –> 00:09:01,200
کلمه کلیدی لامبدا و تابع لامبدا تعریف می شود، می تواند
260
00:09:01,200 –> 00:09:03,440
هر تعداد آرگومان را دریافت کند، اما یک
261
00:09:03,440 –> 00:09:06,320
محدودیت وجود دارد که فقط یک
262
00:09:06,320 –> 00:09:08,640
عبارت داشته باشد خوب، حالا اجازه دهید مثالی را به شما نشان دهم، به
263
00:09:08,640 –> 00:09:10,880
این ترتیب بسیار واضح تر خواهد بود.
264
00:09:10,880 –> 00:09:13,120
من مثال تابع ناشناس را به شما نشان می دهم که
265
00:09:13,120 –> 00:09:15,120
در تابع
266
00:09:15,120 –> 00:09:16,880
زیر خط ناشناس لامبدا زیرخط
267
00:09:16,880 –> 00:09:19,200
underscore example.pi در github
268
00:09:19,200 –> 00:09:21,360
در پوشه قسمت دوم پیدا می کنیم.
269
00:09:21,360 –> 00:09:22,720
این بار به شما می گویم اما دیگر نمی گویم
270
00:09:22,720 –> 00:09:24,959
زیرا اوه شما فقط
271
00:09:24,959 –> 00:09:26,480
برای مثال این کد به پوشه همیشه قسمت دوم مراجعه کردید
272
00:09:26,480 –> 00:09:29,040
اکنون اینجا را ببینید من در
273
00:09:29,040 –> 00:09:31,040
اینجا یک متغیر do تعریف می کنم اما نامی برای تابع نمی گذارم.
274
00:09:31,040 –> 00:09:32,880
275
00:09:32,880 –> 00:09:35,600
متغیر ساده سپس من لامبدا را اختصاص می دهم
276
00:09:35,600 –> 00:09:37,120
اینجا را به خاطر بسپارید مکعب لامبدا آنچه را که
277
00:09:37,120 –> 00:09:39,279
در اینجا استفاده می کنم خوب لامبدا سپس
278
00:09:39,279 –> 00:09:41,120
اولین آرگومان است پس
279
00:09:41,120 –> 00:09:43,040
آرگومان من در این
280
00:09:43,040 –> 00:09:46,399
تابع لامبدا چیست و a و b را ارائه می دهد و
281
00:09:46,399 –> 00:09:47,760
سپس من چیست در حال انجام با تابع،
282
00:09:47,760 –> 00:09:49,680
اکنون به یاد داشته باشید که شما می توانید فقط یک عبارت داشته باشید،
283
00:09:49,680 –> 00:09:52,399
بنابراین این
284
00:09:52,399 –> 00:09:54,480
یک عبارت به اضافه b است، می توانید ضرب
285
00:09:54,480 –> 00:09:56,320
را انجام دهید، می توانید هر نوع پردازشی را
286
00:09:56,320 –> 00:09:59,120
که می خواهید در یک خط انجام دهید، بسیار خوب
287
00:09:59,120 –> 00:10:01,839
و سپس من انجام می دهم i’m
288
00:10:01,839 –> 00:10:04,160
حالا چه
289
00:10:04,160 –> 00:10:05,279
اتفاقی می افتد
290
00:10:05,279 –> 00:10:08,320
در حالی که من این روش را فراخوانی می کنم این متغیر
291
00:10:08,320 –> 00:10:10,240
در واقع این تابع لامبدا را فراخوانی می کند
292
00:10:10,240 –> 00:10:13,519
که در آن a و b بنابراین a 10 و b 20 است و
293
00:10:13,519 –> 00:10:16,240
سپس کاری که تابع انجام می دهد اضافه کردن a
294
00:10:16,240 –> 00:10:18,800
و است. b راست پس a و b بنابراین خروجی
295
00:10:18,800 –> 00:10:20,880
30 خواهد شد. پس اجازه دهید به شما نشان دهم پس بیایید
296
00:10:20,880 –> 00:10:24,320
آن را اجرا کنیم python 3 بنابراین می توانید ببینید که در
297
00:10:24,320 –> 00:10:27,279
اینجا به من 30 می دهد. بنابراین این تابعی است که
298
00:10:27,279 –> 00:10:28,880
شما هیچ نامی
299
00:10:28,880 –> 00:10:31,200
ندادید و کد طولانی ننوشتید ما فقط گفتیم
300
00:10:31,200 –> 00:10:34,079
lambda سپس پارامترها و سپس آنچه
301
00:10:34,079 –> 00:10:36,720
که اکنون انجام می دهد دقیقاً
302
00:10:36,720 –> 00:10:39,200
معادل تابعی مانند این است، بنابراین
303
00:10:39,200 –> 00:10:41,839
اگر این تابع را مشاهده کردید مقداری انجام دهید و
304
00:10:41,839 –> 00:10:44,480
سپس یک بعلاوه b را برمی گردانید بنابراین به جای
305
00:10:44,480 –> 00:10:46,160
نوشتن در یک دو خط، به سادگی می
306
00:10:46,160 –> 00:10:48,079
گویید خط منفرد با استفاده از
307
00:10:48,079 –> 00:10:50,240
تابع لامبدا اوکی است، بنابراین این چیزی
308
00:10:50,240 –> 00:10:52,000
است که مشکلی ندارد و اکنون
309
00:10:52,000 –> 00:10:53,839
موارد استفاده دیگر نیز وجود دارد،
310
00:10:53,839 –> 00:10:56,079
حالا اجازه دهید کمی از آن را برای شما توضیح دهم
311
00:10:56,079 –> 00:10:57,760
در اینجا می توانید ببینید
312
00:10:57,760 –> 00:11:00,079
که من یک لیست دارم که
313
00:11:00,079 –> 00:11:02,720
لیست سفارشی من و در آنجا من یک دو
314
00:11:02,720 –> 00:11:05,600
سه چهار پنج شش تا ده می دهم خوب
315
00:11:05,600 –> 00:11:07,519
حالا شرطی می گذارم که
316
00:11:07,519 –> 00:11:10,399
هر کدام مانند این این لیست باید
317
00:11:10,399 –> 00:11:13,279
مقادیری بیش از پنج داشته باشد اکنون به این
318
00:11:13,279 –> 00:11:16,000
معنی است که مقدار 1 تا 5 خواهد بود حذف شود
319
00:11:16,000 –> 00:11:20,720
و فقط 6 7 8 9 و 10 بمانید چگونه
320
00:11:20,720 –> 00:11:22,560
می توانید اینجا را در لیستی که من می دهم ببینید
321
00:11:22,560 –> 00:11:24,880
تابع فیلتر و در آن فیلتر من مانند لامبدا می دهم،
322
00:11:24,880 –> 00:11:28,160
سپس x این
323
00:11:28,160 –> 00:11:30,160
مقداری است که uh در
324
00:11:30,160 –> 00:11:32,399
تکرار دریافت می شود و سپس
325
00:11:32,399 –> 00:11:34,720
اگر مقدار از x بزرگتر باشد یا نه، چه کاری انجام می دهم
326
00:11:34,720 –> 00:11:36,640
و این در واقع عبارت بولی است
327
00:11:36,640 –> 00:11:38,240
که آن را نشان می دهد. شما
328
00:11:38,240 –> 00:11:40,160
لیست فیلتر شده درست یا نادرست در متغیر لیست فیلتر من ذخیره می شود
329
00:11:40,160 –> 00:11:42,240
و من به سادگی
330
00:11:42,240 –> 00:11:44,160
آن را چاپ می کنم خوب است، بنابراین اجازه دهید آن را اجرا کنم تا بتوانم به
331
00:11:44,160 –> 00:11:46,399
شما نشان دهم که اکنون چه کار می کند، اجازه دهید
332
00:11:46,399 –> 00:11:48,000
تابع را اجرا کنم و نتایج را ببینیم
333
00:11:48,000 –> 00:11:50,399
تا شما می توانم این را ببینم
334
00:11:50,399 –> 00:11:53,120
متغیر لیست فیلتر شده من دیگر
335
00:11:53,120 –> 00:11:55,200
مقادیر یک تا پنج را ندارد فقط از بیش
336
00:11:55,200 –> 00:11:58,160
از 5 که 6 7 8 9 10 است و
337
00:11:58,160 –> 00:12:00,399
من این کار را انجام دادم بنابراین لامبدا
338
00:12:00,399 –> 00:12:02,959
برای عبارات تک خطی خوب است.
339
00:12:02,959 –> 00:12:04,800
برای فیلتر کردن خوب است حالا اجازه دهید
340
00:12:04,800 –> 00:12:08,000
مثال دیگری به شما نشان دهم که می توانید آن را در اینجا ببینید
341
00:12:08,000 –> 00:12:10,880
ما می توانیم مقدار هر
342
00:12:10,880 –> 00:12:12,880
لیست uh یا هر مجموعه ای را نیز دستکاری کنیم، بنابراین در اینجا من
343
00:12:12,880 –> 00:12:15,040
از یک متغیر set استفاده می کنم شما می توانید دوباره اینجا uh
344
00:12:15,040 –> 00:12:18,000
1 تا 10 را ببینید و سپس من در حال ایجاد یک
345
00:12:18,000 –> 00:12:20,160
متغیر لیست دستکاری شده جدید، یک
346
00:12:20,160 –> 00:12:22,639
لیست دستکاری مجدد از t وجود دارد او تنظیم کرد
347
00:12:22,639 –> 00:12:25,120
و در اینجا من لیستی را مانند لیست میدهم، سپس
348
00:12:25,120 –> 00:12:27,279
همه مجموعهها را نقشهبرداری میکنم و سپس
349
00:12:27,279 –> 00:12:29,440
میتوانید ببینید که من یک تابع لامبدا را
350
00:12:29,440 –> 00:12:31,279
در اینجا اجرا میکنم، بنابراین نسخه لامبدا
351
00:12:31,279 –> 00:12:33,839
تکرار x را انجام میدهد و سپس در
352
00:12:33,839 –> 00:12:35,519
واقع x به علاوه یک را انجام میدهم که دو برابر میشود.
353
00:12:35,519 –> 00:12:36,320
بسیار خوب
354
00:12:36,320 –> 00:12:38,959
و این همان متغیر اصلی
355
00:12:38,959 –> 00:12:41,600
تامین است که در اینجا اکنون در این لیست دستکاری شده
356
00:12:41,600 –> 00:12:43,600
خواهید دید که همه این مقادیر
357
00:12:43,600 –> 00:12:45,920
دارای مقادیر دو برابری خواهند بود بنابراین 1 می
358
00:12:45,920 –> 00:12:48,399
شود 2 2 می شود 3 3 می شود 4
359
00:12:48,399 –> 00:12:50,720
بنابراین به این ترتیب توسعه می یابد خوب بنابراین
360
00:12:50,720 –> 00:12:52,560
حالا اجازه دهید من این فایل را اجرا کنم تا بتوانید
361
00:12:52,560 –> 00:12:53,920
نتایج را ببینید،
362
00:12:53,920 –> 00:12:58,399
بنابراین پایتون 3 و تابع ناشناس
363
00:12:58,399 –> 00:13:00,959
همه مقادیر را دو برابر به سمت راست ببینید 1 تبدیل به 2 2
364
00:13:00,959 –> 00:13:03,760
می شود 4، 3 تبدیل به 6 می شود زیرا در اینجا
365
00:13:03,760 –> 00:13:05,360
فقط مقدار را افزایش می دهیم تا بتوانید
366
00:13:05,360 –> 00:13:07,440
مقدار را با استفاده از
367
00:13:07,440 –> 00:13:09,519
تابع لامبدا نیز اکنون بیایید در مورد
368
00:13:09,519 –> 00:13:11,600
تابع بازگشتی یاد بگیریم که
369
00:13:11,600 –> 00:13:13,920
دقیقاً یک تابع بازگشتی چیست، بنابراین به طور کلی یک
370
00:13:13,920 –> 00:13:15,680
تابع می تواند توابع دیگری را به درستی فراخوانی کند
371
00:13:15,680 –> 00:13:18,639
اما در پایتون یک تابع می تواند
372
00:13:18,639 –> 00:13:20,399
خود را Okay نامیده و به این
373
00:13:20,399 –> 00:13:22,079
تابع بازگشتی می گویند که تابعی
374
00:13:22,079 –> 00:13:24,240
که خود را OK می نامد، اجازه دهید
375
00:13:24,240 –> 00:13:25,600
مثالی را به شما نشان دهم تا برای شما بسیار واضح تر باشد،
376
00:13:25,600 –> 00:13:27,680
خب، شما
377
00:13:27,680 –> 00:13:29,360
مثال تابع بازگشتی را در
378
00:13:29,360 –> 00:13:32,000
فایل underscore بازگشتی
379
00:13:32,000 –> 00:13:34,160
در اینجا پیدا خواهید کرد، من در واقع در حال انجام یک
380
00:13:34,160 –> 00:13:36,320
محاسبه فاکتوریل هستم، بنابراین در اینجا من ‘m
381
00:13:36,320 –> 00:13:38,800
تابعی به نام محاسبه فاکتوریل x را تعریف
382
00:13:38,800 –> 00:13:40,720
383
00:13:40,720 –> 00:13:41,920
384
00:13:41,920 –> 00:13:43,279
میکنیم، بنابراین هر پارامتری که مقدار عددی را اعمال میکند و در اینجا
385
00:13:43,279 –> 00:13:46,240
ah اگر x برابر یک باشد
386
00:13:46,240 –> 00:13:47,440
، یک را برمیگرداند زیرا دیگر
387
00:13:47,440 –> 00:13:48,720
باقیمانده
388
00:13:48,720 –> 00:13:51,120
389
00:13:51,120 –> 00:13:54,959
x را به محاسبه فاکتوریل x منهای 1 برمیگرداند.
390
00:13:54,959 –> 00:13:57,360
این بدان معنی است که این تابع
391
00:13:57,360 –> 00:14:01,040
تا زمانی که x تبدیل به 1 شود به کار خود ادامه می دهد. خوب این
392
00:14:01,040 –> 00:14:03,199
نحوه محاسبه ما است و در اینجا من
393
00:14:03,199 –> 00:14:05,920
یک عدد 4 می دهم و سپس شماره فاکتوریل
394
00:14:05,920 –> 00:14:07,920
فقط فاکتوریل محاسبه را ارائه می دهم
395
00:14:07,920 –> 00:14:09,519
که من تابع را فراخوانی می کنم
396
00:14:09,519 –> 00:14:11,120
و عرضه می کنم. عدد
397
00:14:11,120 –> 00:14:13,519
و در حال درست شدن است، بنابراین چگونه
398
00:14:13,519 –> 00:14:15,360
دوباره به روشی ساده تر کار می کند،
399
00:14:15,360 –> 00:14:18,800
بنابراین یک فاکتوریل مانند فرض کنید 4 سپس 4
400
00:14:18,800 –> 00:14:21,920
و سپس به 3 به 2 به 1
401
00:14:21,920 –> 00:14:24,240
می رسد، مقدار نهایی عدد فاکتوریل خواهد بود، بنابراین
402
00:14:24,240 –> 00:14:27,839
در اینجا به همان صورت آه شما ابتدا می توانید ببینید که
403
00:14:27,839 –> 00:14:30,480
آیا مقدار در x آمده است و در x آن
404
00:14:30,480 –> 00:14:32,880
4 خواهد بود، سپس این شرط را برآورده نمی
405
00:14:32,880 –> 00:14:35,040
کند، بنابراین به حالت دیگری در
406
00:14:35,040 –> 00:14:37,440
آنجا می آید که x را می دهد که
407
00:14:37,440 –> 00:14:40,480
مقدار 4 است و سپس
408
00:14:40,480 –> 00:14:44,720
x فاکتوریل منهای 1 را محاسبه کنید که به این معنی است که x
409
00:14:44,720 –> 00:14:48,880
اکنون مقدار x منهای 1 برابر با 3 است، بنابراین 4 به
410
00:14:48,880 –> 00:14:51,199
دوباره 3 درست دوباره فاکتور اتفاق می
411
00:14:51,199 –> 00:14:53,920
افتد که چه کاری انجام می دهد به اینجا می رسد x
412
00:14:53,920 –> 00:14:56,639
و مقدار x اکنون 3 است
413
00:14:56,639 –> 00:15:00,959
پس 3 به 3 منهای 2 است، بنابراین به این ترتیب
414
00:15:00,959 –> 00:15:03,120
ضرب می شود و به درستی ضرب می شود،
415
00:15:03,120 –> 00:15:05,600
بنابراین به این صورت ادامه می دهد
416
00:15:05,600 –> 00:15:08,560
تا زمانی که مقدار x به 1 تبدیل شود، و به این صورت است
417
00:15:08,560 –> 00:15:10,399
که مقدار فاکتوریل
418
00:15:10,399 –> 00:15:12,240
عدد را دریافت می کنیم، حالا اجازه دهید آن را اجرا کنم تا بتوانید
419
00:15:12,240 –> 00:15:14,560
نتایج را ببینید حالا اجازه دهید من مانند
420
00:15:14,560 –> 00:15:16,959
پایتون 3 و فایل را اجرا کنم. نام
421
00:15:16,959 –> 00:15:18,959
422
00:15:18,959 –> 00:15:21,279
مثال بازگشتی پی است و من اکنون آن را وارد می کنم،
423
00:15:21,279 –> 00:15:22,639
می توانید ببینید که به من نتایجی می دهد مانند
424
00:15:22,639 –> 00:15:25,279
فاکتوریل 4 که 1 به 2 به 3 به 4 است
425
00:15:25,279 –> 00:15:27,760
که 24 است که درست است، امیدوارم اکنون
426
00:15:27,760 –> 00:15:29,839
متوجه شده باشید که یک تابع بازگشتی
427
00:15:29,839 –> 00:15:31,839
چیست. تابعی که
428
00:15:31,839 –> 00:15:34,560
خود را فراخوانی میکند، یک تابع بازگشتی است، حالا
429
00:15:34,560 –> 00:15:36,720
اجازه دهید در مورد تابع تودرتو یاد می گیریم،
430
00:15:36,720 –> 00:15:38,880
بنابراین تابعی که در داخل تابع دیگری تعریف شده
431
00:15:38,880 –> 00:15:40,959
است، تابع تودرتو نامیده می شود، حالا
432
00:15:40,959 –> 00:15:42,720
اجازه دهید یک مثال سریع به شما نشان دهم تا
433
00:15:42,720 –> 00:15:44,639
بتوانید در اینجا ببینید، من ابتدا
434
00:15:44,639 –> 00:15:47,759
تابعی به نام grid so great now name را
435
00:15:47,759 –> 00:15:49,759
در داخل تابع git تعریف می کنم. من
436
00:15:49,759 –> 00:15:52,240
نام اصلی شبکه تابع دیگری را تعریف می کنم، بنابراین در
437
00:15:52,240 –> 00:15:53,519
این تابع، چاپ بسیار ساده ای انجام می دهم،
438
00:15:53,519 –> 00:15:56,240
بنابراین hello را در پارامتر نامی
439
00:15:56,240 –> 00:15:57,920
که در تابع شبکه ارائه می
440
00:15:57,920 –> 00:16:00,079
شود چاپ کنید، خوب این تابع والد است
441
00:16:00,079 –> 00:16:02,320
و اوه بعد از اینکه تعریف تابع
442
00:16:02,320 –> 00:16:04,880
انجام شد، در حال فراخوانی هستم. پس
443
00:16:04,880 –> 00:16:07,120
چه اتفاقی میافتد که وقتی من
444
00:16:07,120 –> 00:16:09,519
تابع grit را در اینجا صدا میزنم، سپس
445
00:16:09,519 –> 00:16:11,120
sandeep یا هر نامی را که میخواهید در
446
00:16:11,120 –> 00:16:12,399
آنجا عرضه کنید
447
00:16:12,399 –> 00:16:15,839
که ابتدا به اینجا میآید و سپس
448
00:16:15,839 –> 00:16:17,040
این فقط تعریف
449
00:16:17,040 –> 00:16:18,800
تابع است، ارائه نمیکنم. در اینجا اجرا کنید،
450
00:16:18,800 –> 00:16:20,800
شما در حال اجرای تابع هستید، اوکی
451
00:16:20,800 –> 00:16:23,120
آنجا چاپ hello اتفاق می افتد و
452
00:16:23,120 –> 00:16:25,680
می بینید مانند uh hello sandeep اکنون اجازه دهید
453
00:16:25,680 –> 00:16:29,600
من اجرا کنم و به شما نشان دهم پایتون بسیار ساده
454
00:16:29,600 –> 00:16:32,320
uh three و اوه نام فایل در
455
00:16:32,320 –> 00:16:35,279
اینجا n است. تابع ested، بنابراین فقط آن را اجرا کنید و
456
00:16:35,279 –> 00:16:37,680
می توانید ببینید که در حال چاپ hello sandeep است،
457
00:16:37,680 –> 00:16:41,040
بنابراین ابتدا به تابع grid بروید سپس
458
00:16:41,040 –> 00:16:42,959
در تابع git
459
00:16:42,959 –> 00:16:44,639
، نام grid را تعریف می کنید، در آنجا
460
00:16:44,639 –> 00:16:46,399
نام git را صدا می کنید که
461
00:16:46,399 –> 00:16:48,959
دلیل آن فراخوانی مشابه است. در داخل
462
00:16:48,959 –> 00:16:50,399
تابع git که میگویید، این
463
00:16:50,399 –> 00:16:52,639
تعریف درست وجود دارد، به همین دلیل
464
00:16:52,639 –> 00:16:54,480
است که چاپ hello world خوب است،
465
00:16:54,480 –> 00:16:55,920
زیرا شما در داخل آن تابع تعریف کردهاید،
466
00:16:55,920 –> 00:16:58,000
حالا که فهمیدید
467
00:16:58,000 –> 00:16:59,920
دقیقاً تابع تودرتو چیست، بیایید
468
00:16:59,920 –> 00:17:01,519
در اینجا با بسته شدن و بخش بسیار مهم
469
00:17:01,519 –> 00:17:03,279
آن آشنا شویم. بسیار خوب، بنابراین دقیقاً یک
470
00:17:03,279 –> 00:17:06,079
بسته در بستههای پایتون، تابع
471
00:17:06,079 –> 00:17:08,480
تودرتو یا درونی هستند
472
00:17:08,480 –> 00:17:10,799
که در داخل تابع بیرونی محصور شدهاند، درست
473
00:17:10,799 –> 00:17:12,400
مانند نمونه نسخه تودرتو که
474
00:17:12,400 –> 00:17:13,280
475
00:17:13,280 –> 00:17:15,599
نزدیکتر نشان دادهام، میتواند به متغیر موجود در
476
00:17:15,599 –> 00:17:17,839
محدوده تابع بیرونی مانند هر
477
00:17:17,839 –> 00:17:20,319
تابع منفی عادی دسترسی داشته باشد. می تواند به
478
00:17:20,319 –> 00:17:22,559
این متغیرها دسترسی داشته باشد، اما این مدافع
479
00:17:22,559 –> 00:17:26,000
اشکالی ندارد، می تواند به این متغیر دسترسی داشته باشد، حتی
480
00:17:26,000 –> 00:17:28,640
پس از اتمام اجرای تابع خارجی
481
00:17:28,640 –> 00:17:30,960
اکنون بخش مهمی از
482
00:17:30,960 –> 00:17:32,799
اینجاست که توجه داشته باشید که میتوانید به متغیر دسترسی داشته باشید،
483
00:17:32,799 –> 00:17:35,679
حتی بعد از اینکه تابع بیرونی
484
00:17:35,679 –> 00:17:38,000
که قبلاً اجرا کردهاید،
485
00:17:38,000 –> 00:17:39,600
دیگر در حال اجرا نیست، اما همچنان میتوانید به
486
00:17:39,600 –> 00:17:41,280
مقدار متغیر دسترسی داشته باشید، اجازه دهید
487
00:17:41,280 –> 00:17:43,200
مثالی را به شما نشان دهم تا بتوانید نحوه
488
00:17:43,200 –> 00:17:45,039
بسته شدن را دقیقاً درک کنید. درست کار می کند شما می
489
00:17:45,039 –> 00:17:46,720
توانید مثال نزدیکتر را در
490
00:17:46,720 –> 00:17:48,960
مثال زیر خط نزدیکتر در فایل pi پیدا کنید، بنابراین در اینجا
491
00:17:48,960 –> 00:17:50,559
می توانید ببینید که این یک تابع بسیار ساده است
492
00:17:50,559 –> 00:17:53,360
که در آن نام سلام را تعریف می کنم و سپس
493
00:17:53,360 –> 00:17:54,400
در
494
00:17:54,400 –> 00:17:56,160
داخل تابع خارجی این تابع بیرونی
495
00:17:56,160 –> 00:17:58,559
است مانند شبکه در داخل این شبکه
496
00:17:58,559 –> 00:18:00,480
تابع دیگری را تعریف
497
00:18:00,480 –> 00:18:02,799
می کنم که ما آن را نام grid صدا می زنیم
498
00:18:02,799 –> 00:18:04,880
که تابع داخلی است OK
499
00:18:04,880 –> 00:18:06,880
زیرا این تابع در داخل تابع git قرار
500
00:18:06,880 –> 00:18:08,480
دارد شما می توانید این تابع را که
501
00:18:08,480 –> 00:18:10,640
در اینجا تعریف می کنیم آن
502
00:18:10,640 –> 00:18:12,480
را مشاهده کنید.
503
00:18:12,480 –> 00:18:15,039
یک نام عالی است آنها فقط
504
00:18:15,039 –> 00:18:17,120
نام را در اینجا چاپ می کنند مانند سلام آن
505
00:18:17,120 –> 00:18:19,760
نام، اما متفاوت خواهید دید که
506
00:18:19,760 –> 00:18:22,480
من این تابع را صدا نمی زنم و
507
00:18:22,480 –> 00:18:25,280
فقط تابع را برمی گردم. به خودی خود
508
00:18:25,280 –> 00:18:26,080
خوب است،
509
00:18:26,080 –> 00:18:29,760
بنابراین این دقیقاً همان چیزی است که بسته شدن است، بنابراین
510
00:18:29,760 –> 00:18:32,640
بلافاصله اجرا نمیشود، اما
511
00:18:32,640 –> 00:18:35,840
میتوانید بعداً از این مقدار یا
512
00:18:35,840 –> 00:18:38,400
این متغیری که در حین
513
00:18:38,400 –> 00:18:41,280
اجرای این تابع بیرونی ارائه میکنید استفاده کنید، همچنان
514
00:18:41,280 –> 00:18:42,960
این مقدار متغیر ابتدا در داخل بیت قابل دسترسی است.
515
00:18:42,960 –> 00:18:45,919
تابع name یا
516
00:18:45,919 –> 00:18:48,559
هر تابع داخلی که همان بسته شدن
517
00:18:48,559 –> 00:18:50,880
است، بنابراین در مثال میتوانید ببینید که
518
00:18:50,880 –> 00:18:53,039
نام اول را چاپ میکند، مانند
519
00:18:53,039 –> 00:18:55,280
این متغیری است که من به سادگی
520
00:18:55,280 –> 00:18:58,480
تابع داخلی را ذخیره میکنم، اوه اینجا خوب،
521
00:18:58,480 –> 00:19:00,320
شما میتوانید greet sandeep را ببینید که برمیگرداند
522
00:19:00,320 –> 00:19:03,360
نام grid اما
523
00:19:03,360 –> 00:19:05,760
این تابع ارزش
524
00:19:05,760 –> 00:19:07,919
این sandi را خواهد داشت زیرا ما اینجا عرضه کرده ایم
525
00:19:07,919 –> 00:19:10,480
و می تواند نام من را چاپ کند بنابراین نام کوچک
526
00:19:10,480 –> 00:19:12,960
چاپ در واقع
527
00:19:12,960 –> 00:19:15,600
برابر است با grit سپس sandeep و من به سادگی
528
00:19:15,600 –> 00:19:16,960
اگر فرض کنیم شما می خواهید برای فراخوانی این
529
00:19:16,960 –> 00:19:18,960
تابع چون ah را به عنوان
530
00:19:18,960 –> 00:19:20,720
تابع داخلی تعریف کرده اید و آن را
531
00:19:20,720 –> 00:19:23,120
در تابع خارجی برمی گردانید، بنابراین می توانید به سادگی
532
00:19:23,120 –> 00:19:24,880
این متغیر را فراخوانی کنید، اگر این متغیر
533
00:19:24,880 –> 00:19:26,720
به یک تابع تبدیل شود درست است
534
00:19:26,720 –> 00:19:28,320
زیرا yo شما می توانید ببینید که
535
00:19:28,320 –> 00:19:30,799
نام اصلی چاپ آن است که در واقع خود تابع نام شبکه ای
536
00:19:30,799 –> 00:19:32,720
است، این نمونه ای
537
00:19:32,720 –> 00:19:34,400
از تابعی است که می توانید آن را دوست داشته باشید اگر می خواهید
538
00:19:34,400 –> 00:19:37,039
واضح تر باشید، خوب حالا ما می توانیم به
539
00:19:37,039 –> 00:19:39,200
سادگی این چاپ را با نام کوچک صدا بزنیم و
540
00:19:39,200 –> 00:19:41,679
سپس سلام را چاپ می کند. نام من که
541
00:19:41,679 –> 00:19:44,160
sandeep است در اینجا بسیار خوب است، بنابراین اجازه دهید آن را اجرا کنم تا
542
00:19:44,160 –> 00:19:46,400
بتوانید راه واضح تری را درک کنید،
543
00:19:46,400 –> 00:19:47,200
بنابراین
544
00:19:47,200 –> 00:19:48,559
پایتون
545
00:19:48,559 –> 00:19:50,880
3 را ببندید، سپس
546
00:19:50,880 –> 00:19:54,640
مثال را ببندید که سلام sandeep را ببینید، بنابراین حتی
547
00:19:54,640 –> 00:19:57,039
اگر اجرای تابع گرید به
548
00:19:57,039 –> 00:19:58,480
طور کامل انجام شده باشد،
549
00:19:58,480 –> 00:20:00,480
این نام متغیر
550
00:20:00,480 –> 00:20:03,840
در داخل نام اصلی شبکه موجود است.
551
00:20:03,840 –> 00:20:06,320
و وقتی آن را
552
00:20:06,320 –> 00:20:08,080
برگردانید، مقدار را برمی گردانید، مثل این است که مقدار هنوز
553
00:20:08,080 –> 00:20:10,400
وجود دارد، بسیار خوب،
554
00:20:10,400 –> 00:20:12,400
مانند زباله جمع آوری شده یا مرده نیست،
555
00:20:12,400 –> 00:20:14,720
هنوز در دسترس است و می توانید از آن استفاده کنید
556
00:20:14,720 –> 00:20:17,679
و همانطور که در نظر گرفته شده است
557
00:20:17,679 –> 00:20:19,840
، نامی را که در آن است چاپ می کند. به شکل
558
00:20:19,840 –> 00:20:22,400
مشابه ارائه شده توسط عملکرد بیرونی موجود است، بنابراین
559
00:20:22,400 –> 00:20:24,720
این همان چیزی است که بسته شدن مشکلی ندارد، امیدوارم
560
00:20:24,720 –> 00:20:26,400
اکنون آن را درک کرده باشید، اجازه دهید به
561
00:20:26,400 –> 00:20:28,080
موضوع بعدی برویم اکنون بیایید در مورد
562
00:20:28,080 –> 00:20:30,559
دکوراتورها بیاموزیم تا یک دکوراتور یک دکوراتور باشد
563
00:20:30,559 –> 00:20:33,760
الگوی طراحی در پایتون که به ما اجازه می دهد تا یک
564
00:20:33,760 –> 00:20:35,679
عملکرد جدید را به یک تابع موجود اضافه
565
00:20:35,679 –> 00:20:38,559
کنیم بدون اینکه
566
00:20:38,559 –> 00:20:41,360
567
00:20:41,360 –> 00:20:43,440
568
00:20:43,440 –> 00:20:45,840
569
00:20:45,840 –> 00:20:47,440
ساختار را تغییر دهیم.
570
00:20:47,440 –> 00:20:50,080
در زمان کامپایل درست و
571
00:20:50,080 –> 00:20:52,080
موارد استفاده ما در کنترل از راه دور وب
572
00:20:52,080 –> 00:20:54,640
مانند فلاسک و جنگو پیدا خواهیم کرد که
573
00:20:54,640 –> 00:20:57,600
در انتها پوشش داده می شود، بنابراین فعال بمانید و ورود به سیستم
574
00:20:57,600 –> 00:20:59,200
و ردیابی زمان اجرا می توانیم
575
00:20:59,200 –> 00:21:00,960
از این نوع عملکرد تخریب شده استفاده کنیم
576
00:21:00,960 –> 00:21:02,720
حالا اجازه دهید مثالی را به شما نشان دهم. بنابراین می
577
00:21:02,720 –> 00:21:04,799
توانید آن را حتی بهتر درک کنید، خوب، می
578
00:21:04,799 –> 00:21:07,120
توانید مثال degrader را در
579
00:21:07,120 –> 00:21:09,360
decorator underscore بیابید. فایل پی
580
00:21:09,360 –> 00:21:11,760
در اینجا خوب است، می توانید ببینید من تابعی
581
00:21:11,760 –> 00:21:13,360
دارم من یک تابع تعریف کرده ام خوب است که نام کوچک عالی است،
582
00:21:13,360 –> 00:21:16,000
دوباره بسیار ساده است
583
00:21:16,000 –> 00:21:18,320
مانند چاپ و سپس سلام نام
584
00:21:18,320 –> 00:21:20,240
آنچه در اینجا غیرمعمول است اینجا را
585
00:21:20,240 –> 00:21:22,960
ببینید قالب بندی شبکه بسیار خوب است، بنابراین این
586
00:21:22,960 –> 00:21:24,960
تابع ساده است اگر
587
00:21:24,960 –> 00:21:26,320
دوست دارید
588
00:21:26,320 –> 00:21:28,840
همه چیز را نظر بدهیم
589
00:21:28,840 –> 00:21:31,039
و اگر
590
00:21:31,039 –> 00:21:32,320
به سادگی
591
00:21:32,320 –> 00:21:33,760
این یکی را اجرا کنید
592
00:21:33,760 –> 00:21:36,880
خوب است و اجازه دهید ay
593
00:21:36,880 –> 00:21:38,000
این
594
00:21:38,000 –> 00:21:40,720
اسم را حفظ کنید و فقط اسمی
595
00:21:40,720 –> 00:21:42,480
به نام خواب
596
00:21:42,480 –> 00:21:44,640
بدهید خوب بیایید آن را ذخیره کنیم و سعی کنیم
597
00:21:44,640 –> 00:21:47,440
آن را اجرا کنیم تا پایتون 3
598
00:21:47,440 –> 00:21:50,240
سپس نام فایل به عنوان مثال دکوراتور
599
00:21:50,240 –> 00:21:52,400
است و به سادگی hello را چاپ می کند نه خیلی
600
00:21:52,400 –> 00:21:55,120
تابع ساده اول حالا بیایید آن را به
601
00:21:55,120 –> 00:21:57,120
یک نسخه بهبودیافته تبدیل کنیم. مانند فرمت کردن
602
00:21:57,120 –> 00:22:00,480
یک روش جذاب، خوب و جذاب
603
00:22:00,480 –> 00:22:02,640
و ما می توانیم این کار را از طریق
604
00:22:02,640 –> 00:22:04,559
خود دکوراتور به روشی بسیار ساده انجام دهیم، من
605
00:22:04,559 –> 00:22:06,640
حتی یک خط را در این عملکرد خاص تغییر نمی دهم،
606
00:22:06,640 –> 00:22:08,480
اما هنوز هم می توانیم
607
00:22:08,480 –> 00:22:10,240
608
00:22:10,240 –> 00:22:12,240
مانند نوعی قالب بندی در اینجا به آن دست پیدا کنیم.
609
00:22:12,240 –> 00:22:13,200
خوب،
610
00:22:13,200 –> 00:22:16,080
اکنون به سادگی این مثال را
611
00:22:16,080 –> 00:22:18,240
در اینجا حذف کنید، شما به سادگی می توانید این کار را با
612
00:22:18,240 –> 00:22:20,640
تابع decorator انجام دهید، اجازه دهید من به شما نشان دهم که
613
00:22:20,640 –> 00:22:22,799
عملکرد چگونه انجام می شود، بنابراین می توانید یک
614
00:22:22,799 –> 00:22:24,960
تابع رمزگشا را ببینید، جایی
615
00:22:24,960 –> 00:22:26,960
که خود پارامتر یک تابع است، بنابراین
616
00:22:26,960 –> 00:22:28,559
می توانید پارامتر i را در اینجا ببینید. m
617
00:22:28,559 –> 00:22:30,799
یک پارامتر تابع را خوب می
618
00:22:30,799 –> 00:22:32,559
دهم و همه چیز را در مراحل ساده توضیح خواهم داد،
619
00:22:32,559 –> 00:22:34,559
بنابراین نگران نباشید،
620
00:22:34,559 –> 00:22:36,400
ابتدا سعی کنید در مورد این دو تابع متوجه شوید،
621
00:22:36,400 –> 00:22:37,840
تابع بیرونی وجود دارد
622
00:22:37,840 –> 00:22:39,919
که تابع داخلی خارج از
623
00:22:39,919 –> 00:22:41,760
Uh تابع خارجی وجود دارد یک
624
00:22:41,760 –> 00:22:44,480
شبکه فرمت است که در آن من
625
00:22:44,480 –> 00:22:46,320
تابعی را می پذیرم که
626
00:22:46,320 –> 00:22:47,679
پارامتر تابع عملکرد
627
00:22:47,679 –> 00:22:50,240
در داخل است و من تابع دیگری را تعریف می کنم
628
00:22:50,240 –> 00:22:53,039
که تابع داخلی است و در اینجا
629
00:22:53,039 –> 00:22:54,880
پارامتر نام است
630
00:22:54,880 –> 00:22:56,480
اکنون در آنجا می توانید ببینید
631
00:22:56,480 –> 00:22:59,039
uh print okay چاپ کنید پس من دقیقاً مثل این هستم که
632
00:22:59,039 –> 00:23:00,559
سعی کنم آن را کمی
633
00:23:00,559 –> 00:23:03,360
خنکتر کنم و سپس نام تابع
634
00:23:03,360 –> 00:23:06,000
را در اینجا صدا میزنم و پارامتری را ارائه میکنم
635
00:23:06,000 –> 00:23:08,159
که این پارامتر نام است، این
636
00:23:08,159 –> 00:23:10,640
خود تابع است و دوباره این بسته شدن با
637
00:23:10,640 –> 00:23:12,799
یک چیز جالب است و سپس من من
638
00:23:12,799 –> 00:23:15,840
تابع درونی را برمی گردم تا بتوانید ببینید
639
00:23:15,840 –> 00:23:18,080
که ما در حال اضافه کردن عملکرد اضافی
640
00:23:18,080 –> 00:23:21,760
به تابع موجود هستیم، بنابراین می
641
00:23:21,760 –> 00:23:23,679
توانید اینجا را ببینید که ما در حال اضافه کردن
642
00:23:23,679 –> 00:23:26,559
تابع اضافی به تابع موجود هستیم.
643
00:23:26,559 –> 00:23:28,640
644
00:23:28,640 –> 00:23:30,240
و سپس
645
00:23:30,240 –> 00:23:32,240
تابع داخلی را به حالت عادی برمی گردانید
646
00:23:32,240 –> 00:23:34,240
تا زمانی که
647
00:23:34,240 –> 00:23:36,080
آن را خوب چاپ می کنید جالب به نظر برسد، بنابراین می توانید ببینید که ما در حال
648
00:23:36,080 –> 00:23:38,400
تعریف متغیری هستیم که معادله بسیار عالی است.
649
00:23:38,400 –> 00:23:40,799
اگر شبکه تابع را
650
00:23:40,799 –> 00:23:42,880
که تابع بیرونی است اختصاص میدهید و در
651
00:23:42,880 –> 00:23:44,640
داخل تابع
652
00:23:44,640 –> 00:23:46,720
نام شبکه را به عنوان پارامتر ارائه میدهید، بنابراین به این ترتیب
653
00:23:46,720 –> 00:23:48,159
654
00:23:48,159 –> 00:23:50,480
توانایی این تابع را افزایش میدهید و به
655
00:23:50,480 –> 00:23:52,080
عنوان یک wrapper میتوانید تابع wrapper
656
00:23:52,080 –> 00:23:53,360
را به
657
00:23:53,360 –> 00:23:56,159
نام شبکه در جایی که در آن قرار دارد، مشاهده کنید. به
658
00:23:56,159 –> 00:23:58,559
سادگی این تابع داخلی را بسیار خوب برمی گرداند
659
00:23:58,559 –> 00:24:01,200
که در نهایت
660
00:24:01,200 –> 00:24:03,520
تابع داخلی را به من می دهد، جایی که
661
00:24:03,520 –> 00:24:05,440
در داخل تابع ما خارج را فراخوانی می کنیم،
662
00:24:05,440 –> 00:24:06,960
بنابراین می توانید اینجا را ببینید که ما در
663
00:24:06,960 –> 00:24:08,720
واقع از مفهوم نزدیکتر
664
00:24:08,720 –> 00:24:12,080
در اینجا استفاده می کنیم، جایی که حتی پس از
665
00:24:12,080 –> 00:24:14,880
اجرای تابع خارجی، ما هنوز هم میتوانیم
666
00:24:14,880 –> 00:24:17,360
از متغیری که در داخل تابع عرضه میشود
667
00:24:17,360 –> 00:24:19,760
استفاده کنیم، به همین دلیل است
668
00:24:19,760 –> 00:24:21,600
که وقتی تابع درونی را دریافت
669
00:24:21,600 –> 00:24:23,919
میکنیم، به تابع اصلی دسترسی داریم
670
00:24:23,919 –> 00:24:25,679
که نام شبکه است
671
00:24:25,679 –> 00:24:26,400
672
00:24:26,400 –> 00:24:27,840
و آنچه را که مینامیم در
673
00:24:27,840 –> 00:24:30,000
تابع داخلی انجام میدهیم. به سادگی
674
00:24:30,000 –> 00:24:32,159
تابع را با پارامتر اضافی مشابه در داخل تابع فراخوانی می کنند و آن را ارائه می دهند
675
00:24:32,159 –> 00:24:33,919
676
00:24:33,919 –> 00:24:36,400
و اولین تعریف
677
00:24:36,400 –> 00:24:38,559
تابع را ببینید این همان نام git است که در آن
678
00:24:38,559 –> 00:24:40,960
انتظار داریم پارامتر name uh درست باشد
679
00:24:40,960 –> 00:24:43,600
، به همین دلیل است که ما این کار را در اینجا انجام می دهیم،
680
00:24:43,600 –> 00:24:46,159
بنابراین شما چگونه این کار را انجام می دهید، بنابراین
681
00:24:46,159 –> 00:24:47,919
ابتدا فقط تابع خارجی را فراخوانی می
682
00:24:47,919 –> 00:24:49,440
کنیم و تابع داخلی را ارائه می دهیم که داخلی را
683
00:24:49,440 –> 00:24:51,520
برمی گرداند.
684
00:24:51,520 –> 00:24:54,320
تابع در اینجا اکنون این تابع در
685
00:24:54,320 –> 00:24:56,080
واقع تابع داخلی است که تابعی را
686
00:24:56,080 –> 00:24:58,400
فراخوانی میکند که عرضه
687
00:24:58,400 –> 00:25:00,559
است، یعنی این تابع در اینجا تماس
688
00:25:00,559 –> 00:25:02,720
میگیرد و انتظار یک نام درست را دارد و شما
689
00:25:02,720 –> 00:25:04,080
نام عملکرد داخلی را
690
00:25:04,080 –> 00:25:06,240
نیز ارائه میدهید، بنابراین دلیلی وجود دارد که من
691
00:25:06,240 –> 00:25:09,120
با ارائه sandeep، مانند
692
00:25:09,120 –> 00:25:11,520
قالب بندی جالب چاپ می شود، سپس این تابع
693
00:25:11,520 –> 00:25:14,559
اجرا می شود خوب print sandeep و سپس
694
00:25:14,559 –> 00:25:16,640
دوباره
695
00:25:16,640 –> 00:25:18,559
یک قالب بندی جالب چاپ کنید، خوب حالا اجازه
696
00:25:18,559 –> 00:25:20,320
دهید آن را اجرا کنم و خیلی خوب است
697
00:25:20,320 –> 00:25:21,919
که حالا برای اجرای آن باید
698
00:25:21,919 –> 00:25:25,120
پایتون را اجرا کنیم. 3 سپس نام فایل
699
00:25:25,120 –> 00:25:27,679
تزئین شده است، به عنوان مثال خوب است و اگر این کار را انجام دهید،
700
00:25:27,679 –> 00:25:29,440
می توانید ببینید
701
00:25:29,440 –> 00:25:30,960
ابتدا یک
702
00:25:30,960 –> 00:25:33,440
قالب بندی جالب است، سپس سلام
703
00:25:33,440 –> 00:25:35,840
sandeep و در پایان نیز یک
704
00:25:35,840 –> 00:25:37,919
قالب بندی جالب وجود دارد، بنابراین این ho ما میتوانیم
705
00:25:37,919 –> 00:25:40,320
توانایی یک تابع را بهعنوان
706
00:25:40,320 –> 00:25:42,159
تابع بستهبندی با استفاده از تابع استوا
707
00:25:42,159 –> 00:25:44,880
و مفهوم بسته شدن افزایش دهیم،
708
00:25:44,880 –> 00:25:46,400
اکنون امیدوارم که تابع استوا را درک کرده باشید،
709
00:25:46,400 –> 00:25:48,240
اجازه دهید یک چیز جالب دیگر را به شما نشان دهم
710
00:25:48,240 –> 00:25:51,200
که به جای اینکه بدانید
711
00:25:51,200 –> 00:25:53,200
در واقع همه اینها را انجام میدهید، مثل اینکه میدانید
712
00:25:53,200 –> 00:25:55,600
اینجا تهیه میکنید. و انجام تمام کارهایی که وجود
713
00:25:55,600 –> 00:25:57,360
دارد یک مختصر در دسترس است، بنابراین در
714
00:25:57,360 –> 00:25:58,960
واقع بسیار جالب است، بنابراین کاری که باید
715
00:25:58,960 –> 00:26:00,320
انجام دهید این است
716
00:26:00,320 –> 00:26:01,760
717
00:26:01,760 –> 00:26:04,159
که در اینجا در حالی که خود تابع را تعریف
718
00:26:04,159 –> 00:26:06,400
می کنید، مانند این تابع
719
00:26:06,400 –> 00:26:08,960
را توضیح دهید، بنابراین اجازه دهید هنگام تعریف تابع
720
00:26:08,960 –> 00:26:10,880
درست بالای تابع
721
00:26:10,880 –> 00:26:13,039
، این را داشته باشید تابع degraded درست است، بنابراین
722
00:26:13,039 –> 00:26:14,640
این تابع رمزگشا باید دوست داشته باشید
723
00:26:14,640 –> 00:26:17,039
که سرعت رمزگشا را اضافه کنید، که
724
00:26:17,039 –> 00:26:19,679
در واقع به این معنی است که شما
725
00:26:19,679 –> 00:26:21,919
این تابع را به عملکرد تزئینی ارائه
726
00:26:21,919 –> 00:26:24,240
می دهید و
727
00:26:24,240 –> 00:26:26,880
این را دریافت می کنید، بنابراین اگر فقط خود تابع ساده را فراخوانی کنید،
728
00:26:26,880 –> 00:26:29,520
اشکالی ندارد.
729
00:26:29,520 –> 00:26:32,080
به عنوان یک تابع رمزگشا در نظر گرفته شود، حالا اجازه دهید من
730
00:26:32,080 –> 00:26:33,679
آن را اجرا کنم تا در واقع
731
00:26:33,679 –> 00:26:36,880
برای شما خیلی واضح تر باشد، بنابراین به جای انجام
732
00:26:36,880 –> 00:26:39,279
همه این کارها مانند y میدانید تامین
733
00:26:39,279 –> 00:26:40,159
میکنید، مثل اینکه میدانید
734
00:26:40,159 –> 00:26:43,200
یک متغیر تعریف میکنید، سپس
735
00:26:43,200 –> 00:26:46,159
تابع این uh را در داخل این
736
00:26:46,159 –> 00:26:48,159
تابع دیگر به جای همه مواردی که میتوانید
737
00:26:48,159 –> 00:26:51,520
به سادگی علامت اضافه کنید و ذکر کنید
738
00:26:51,520 –> 00:26:54,400
که کدام تابع رمزگشا را باید استفاده کنید، ارائه کنید، سپس این
739
00:26:54,400 –> 00:26:56,400
تابع تبدیل به یک تابع رمزگشا میشود
740
00:26:56,400 –> 00:26:57,200
741
00:26:57,200 –> 00:26:59,600
و شما به سادگی میتوانید این تابع را صدا بزنید
742
00:26:59,600 –> 00:27:02,799
همانطور که انتظار می رود کار می کند بسیار خوب
743
00:27:02,799 –> 00:27:04,799
، همچنان به همان روشی که اکنون امتحان کردید چاپ می شود،
744
00:27:04,799 –> 00:27:07,679
پس بیایید دوباره
745
00:27:07,679 –> 00:27:09,679
آن را مانند viewer نامگذاری کنیم یا بگوییم بیایید بگوییم بیننده
746
00:27:09,679 –> 00:27:10,559
خوب است
747
00:27:10,559 –> 00:27:12,880
و اجازه دهید دوباره اجرا کنم
748
00:27:12,880 –> 00:27:14,400
تا
749
00:27:14,400 –> 00:27:16,559
بتوانید ببینید که در حال گفتن سلام بیننده است.
750
00:27:16,559 –> 00:27:18,480
آنها دقیقاً به همان روش کار می کنند به
751
00:27:18,480 –> 00:27:21,360
جای اینکه همه اینها را تعریف کنند و سپس آن را فراخوانی کنید،
752
00:27:21,360 –> 00:27:23,279
می توانید به سادگی تابع را فراخوانی کنید
753
00:27:23,279 –> 00:27:26,159
اکنون خوب است، بنابراین
754
00:27:26,159 –> 00:27:28,080
امیدوارم که متوجه شده باشید که عملکرد رمزگشا چگونه
755
00:27:28,080 –> 00:27:29,840
کار می کند اکنون اجازه دهید به
756
00:27:29,840 –> 00:27:31,679
مبحث بعدی برویم و اکنون در مورد
757
00:27:31,679 –> 00:27:34,159
کلاسهای پایتون، بنابراین ابتدا بیایید بفهمیم
758
00:27:34,159 –> 00:27:36,559
که چرا باید از کلاسها در پایتون استفاده کنیم، بنابراین
759
00:27:36,559 –> 00:27:38,960
یکی از روشهای بسیار محبوب
760
00:27:38,960 –> 00:27:41,600
برنامهنویسی ایجاد اشیاء است
761
00:27:41,600 –> 00:27:44,080
که به عنوان Object شناخته میشود. برنامه نویسی تی گرا یا
762
00:27:44,080 –> 00:27:46,960
به طور خلاصه ما آن را اوپس می گوییم، بنابراین
763
00:27:46,960 –> 00:27:48,399
پایتون یک زبان برنامه نویسی شی گرا
764
00:27:48,399 –> 00:27:50,480
است یکی از اهداف کلیدی
765
00:27:50,480 –> 00:27:53,440
استفاده از کلاس ها، نقل قول های قابل استفاده مجدد تا
766
00:27:53,440 –> 00:27:55,600
حد امکان است که به عنوان یک مفهوم خشک نیز شناخته می شود
767
00:27:55,600 –> 00:27:57,760
که خود را مرور نکنید،
768
00:27:57,760 –> 00:28:00,320
خوب است. دقیقاً یک کلاس چیست، بنابراین یک
769
00:28:00,320 –> 00:28:02,399
کلاس یک طرح اولیه برای ایجاد
770
00:28:02,399 –> 00:28:05,200
اشیاء است در حال حاضر شیء چیست، یک
771
00:28:05,200 –> 00:28:07,760
شی نهادی از یک کلاس است به
772
00:28:07,760 –> 00:28:10,080
عبارت ساده تر شی مجموعه ای از
773
00:28:10,080 –> 00:28:12,640
متغیرها و تابع است که به عنوان یک
774
00:28:12,640 –> 00:28:14,960
داده ارائه شده در کلاس تعریف شده است.
775
00:28:14,960 –> 00:28:17,440
یک نکته مهم در اینجا
776
00:28:17,440 –> 00:28:20,240
هر زمان که یک شیء این متد را فراخوانی
777
00:28:20,240 –> 00:28:22,960
می کند، خود شیء اول به عنوان آرگومان اول ارسال می
778
00:28:22,960 –> 00:28:25,600
شود، خوب است، برای مثال می توانید
779
00:28:25,600 –> 00:28:28,480
در بالا در اینجا ببینید که dev init می کند و سپس
780
00:28:28,480 –> 00:28:30,799
خود را ارائه می دهید که خود در
781
00:28:30,799 –> 00:28:32,240
واقع یک مرجع به
782
00:28:32,240 –> 00:28:33,520
خود شی است. خوب
783
00:28:33,520 –> 00:28:35,840
حالا ما میتوانیم این پارامتر را
784
00:28:35,840 –> 00:28:37,279
هر چیزی که میخواهید نامگذاری کنیم، به جای
785
00:28:37,279 –> 00:28:39,679
self، میتوانیم آن را مانند یک شی سفارشی
786
00:28:39,679 –> 00:28:42,159
یا خود شیء هرچه دوست دارید نامگذاری کنیم، خوب است،
787
00:28:42,159 –> 00:28:44,240
اما به معنای ساده این است همان
788
00:28:44,240 –> 00:28:45,600
شیئی که شما
789
00:28:45,600 –> 00:28:47,279
متد را okay می نامید
790
00:28:47,279 –> 00:28:49,679
اکنون اجازه دهید من به عنوان مثال شی و کلاس را
791
00:28:49,679 –> 00:28:51,679
به شما نشان دهم تا
792
00:28:51,679 –> 00:28:53,840
حتی بهتر متوجه شوید خوب است بنابراین می توانید اینجا را ببینید که من
793
00:28:53,840 –> 00:28:55,840
یک کلاس را با استفاده از کلمه کلیدی class تعریف می کنم
794
00:28:55,840 –> 00:28:58,720
که کلاس my simple class است. و در
795
00:28:58,720 –> 00:29:00,880
داخل کلاس okay یک متغیر وجود دارد که
796
00:29:00,880 –> 00:29:04,000
x من مقدار x را به عنوان 20 تعریف میکنم okay
797
00:29:04,000 –> 00:29:05,919
سپس تابع دیگری را تعریف میکنم که
798
00:29:05,919 –> 00:29:08,000
مقدار x را چاپ میکند که در واقع
799
00:29:08,000 –> 00:29:10,240
زیاد نیست، به سادگی
800
00:29:10,240 –> 00:29:13,120
مقدار x را چاپ میکند. در اینجا توجه داشته باشید که این
801
00:29:13,120 –> 00:29:15,679
پارامتر self در واقع شیء
802
00:29:15,679 –> 00:29:17,360
okay نیست، بنابراین وقتی یک شی از
803
00:29:17,360 –> 00:29:20,320
این کلاس ایجاد می کنیم، آن متغیر شی که
804
00:29:20,320 –> 00:29:22,720
x okay self dot x است، به همین دلیل است که
805
00:29:22,720 –> 00:29:24,559
در تابعی چاپ می کنیم که می
806
00:29:24,559 –> 00:29:27,039
گویم مقدار آن را چاپ کنید. x خود
807
00:29:27,039 –> 00:29:29,600
x برابر 20 است خوب حالا می توانید اینجا را ببینید که
808
00:29:29,600 –> 00:29:32,159
c برابر با کلاس ساده من است، بنابراین c
809
00:29:32,159 –> 00:29:34,399
شیء اینجاست خوب است که
810
00:29:34,399 –> 00:29:37,840
در اینجا از کلاس ساده من استفاده می کنم خوب، من آن را به سادگی
811
00:29:37,840 –> 00:29:40,159
کلاس ساده من می نامم و که در اینجا
812
00:29:40,159 –> 00:29:41,600
یک شی ایجاد می
813
00:29:41,600 –> 00:29:44,000
کند و سپس با استفاده از شی ای که می توانیم آن را محاسبه کنیم
814
00:29:44,000 –> 00:29:46,240
این تابع مقدار x
815
00:29:46,240 –> 00:29:48,880
را خوب چاپ میکند و مقدار x را 20 چاپ میکند.
816
00:29:48,880 –> 00:29:51,039
حالا اجازه دهید آن را اجرا کنم تا
817
00:29:51,039 –> 00:29:53,679
درک آن آسان باشد، اکنون پایتون را اجرا
818
00:29:53,679 –> 00:29:56,000
کنید، نام فایل زیر خط کلاسها و
819
00:29:56,000 –> 00:29:58,720
نمونه اشیاء است، بنابراین اجازه دهید آن را اجرا کنیم. شما می توانید
820
00:29:58,720 –> 00:30:02,240
ببینید که مقدار x 20 است، بنابراین
821
00:30:02,240 –> 00:30:06,000
من آن را به این صورت چاپ کردم، مقدار x برابر 20 است و
822
00:30:06,000 –> 00:30:08,399
دقیقاً اینگونه است که چگونه
823
00:30:08,399 –> 00:30:10,399
می توانید در واقع شی از یک کلاس ایجاد کنید
824
00:30:10,399 –> 00:30:12,000
و هر متدی از
825
00:30:12,000 –> 00:30:14,480
کلاس خاص را فراخوانی کنید. اکنون متوجه شدید
826
00:30:14,480 –> 00:30:16,399
که بیایید در مورد سازنده های پایتون بیاموزیم،
827
00:30:16,399 –> 00:30:18,640
بنابراین تابع کلاسی که
828
00:30:18,640 –> 00:30:21,120
با زیرخط دوتایی شروع می شود،
829
00:30:21,120 –> 00:30:24,159
توابع فضایی نامیده می شوند که
830
00:30:24,159 –> 00:30:26,480
پرکاربردترین آنها زیرخط اولیه
831
00:30:26,480 –> 00:30:28,159
دوبل و زیرخط دوبرابر و نماد تابع
832
00:30:28,159 –> 00:30:29,520
است.
833
00:30:29,520 –> 00:30:31,840
همه کلاس هایی که تابعی به نام
834
00:30:31,840 –> 00:30:34,799
init دارند. که همیشه در هنگام راه
835
00:30:34,799 –> 00:30:36,880
اندازی کلاس اجرا می شود و
836
00:30:36,880 –> 00:30:39,279
ما یک تابع سازنده را OK می خوانیم، حالا اجازه
837
00:30:39,279 –> 00:30:40,960
دهید مثالی را به شما نشان دهم تا
838
00:30:40,960 –> 00:30:42,640
بهتر متوجه شوید می توانید ببینید که
839
00:30:42,640 –> 00:30:44,559
ما کلاسی را تعریف کرده ایم که یک
840
00:30:44,559 –> 00:30:46,320
کلاس شخص خوب است، شما می توانید کلمه کلیدی کلاس
841
00:30:46,320 –> 00:30:48,559
و شخص را ببینید، بنابراین نام کلاس
842
00:30:48,559 –> 00:30:51,679
شخص است و در داخل آن کلاس
843
00:30:51,679 –> 00:30:53,919
یک زیرخط زیرخط ابتدایی زیرخط تعریف کرده ایم،
844
00:30:53,919 –> 00:30:55,679
سپس
845
00:30:55,679 –> 00:30:58,000
آرگومان های تابع خوب است، اولین
846
00:30:58,000 –> 00:31:01,440
آرگومان البته خود آرگومان است که است.
847
00:31:01,440 –> 00:31:03,039
که در واقع به شی ایجاد شده اشاره
848
00:31:03,039 –> 00:31:05,440
دارد و سپس نام اضافی و
849
00:31:05,440 –> 00:31:07,519
h اکنون در این
850
00:31:07,519 –> 00:31:09,760
تابع سازنده نام و h زمانی
851
00:31:09,760 –> 00:31:11,679
که self.name را مشخص میکنید
852
00:31:11,679 –> 00:31:14,640
برابر با name است که به این معنی است که
853
00:31:14,640 –> 00:31:17,440
مقدار پارامتر name عبارت است از casing pass در
854
00:31:17,440 –> 00:31:20,559
در اشیاء ویژگی یا متغیر نام
855
00:31:20,559 –> 00:31:23,519
و اشیاء هر ویژگی ما
856
00:31:23,519 –> 00:31:26,159
مقداری را به عنوان h اختصاص می دهیم همانطور که در اینجا اعمال می شود
857
00:31:26,159 –> 00:31:28,159
بنابراین ما کلاس شخص هستیم هنگامی که
858
00:31:28,159 –> 00:31:30,320
شما شیء را ایجاد می کنید ما
859
00:31:30,320 –> 00:31:32,960
دو مقدار نام و لبه را اختصاص می دهیم اکنون می توانید
860
00:31:32,960 –> 00:31:34,720
در تابعی که در آن قرار دارید مشاهده کنید. در حال تعریف
861
00:31:34,720 –> 00:31:37,279
dev شخص و شما مجدداً اولین
862
00:31:37,279 –> 00:31:38,799
پارامتر به عنوان یک پارامتر سلول هستید که در
863
00:31:38,799 –> 00:31:40,399
واقع خود شیء است، بنابراین در
864
00:31:40,399 –> 00:31:42,240
خود سازنده یک
865
00:31:42,240 –> 00:31:44,480
نام و یال wh ارائه کرده ایم. ich اکنون
866
00:31:44,480 –> 00:31:46,799
در هر تابع یا هر روش دیگری در دسترس است،
867
00:31:46,799 –> 00:31:48,559
بنابراین در اینجا میتوانید ببینید
868
00:31:48,559 –> 00:31:50,320
که هنگام چاپ hello و سپس
869
00:31:50,320 –> 00:31:52,640
self name، در واقع
870
00:31:52,640 –> 00:31:54,720
ارزش نامی را دارد که هنگام
871
00:31:54,720 –> 00:31:57,360
ایجاد خود شیء ارائه شده است، این همان چیزی است که
872
00:31:57,360 –> 00:31:59,360
ما استفاده کردیم. به طور معمول برای تابع سازنده
873
00:31:59,360 –> 00:32:01,200
اکنون می توانید اینجا ببینید p
874
00:32:01,200 –> 00:32:03,600
شیئی است که در آن شخص
875
00:32:03,600 –> 00:32:05,760
نام کلاس را تعیین می کنید و سپس ما
876
00:32:05,760 –> 00:32:07,600
دو مقدار را ارائه می دهیم که john است که یک
877
00:32:07,600 –> 00:32:10,320
نام است و h این okay است که
878
00:32:10,320 –> 00:32:13,200
به واقع خود اشاره دارد. در واقع
879
00:32:13,200 –> 00:32:15,200
خود شیئی که در حال ایجاد شدن است
880
00:32:15,200 –> 00:32:16,640
و نام آن نامی است که ما
881
00:32:16,640 –> 00:32:18,799
اولین پارامتر و یال را ارائه می
882
00:32:18,799 –> 00:32:20,320
کنیم که پارامتر دوم را اعمال می کند
883
00:32:20,320 –> 00:32:21,840
زیرا init یک
884
00:32:21,840 –> 00:32:23,279
تابع سازنده است و شما این را به
885
00:32:23,279 –> 00:32:25,039
مقادیر ارائه می دهید این دو مقدار به
886
00:32:25,039 –> 00:32:27,039
طور خودکار ارسال می شود و انتساب آن
887
00:32:27,039 –> 00:32:29,919
به مقادیر در اینجا درست مانند آنچه که
888
00:32:29,919 –> 00:32:32,640
اکنون انجام دادیم، اگر از این
889
00:32:32,640 –> 00:32:34,320
شیء خاص این متد خاص را که
890
00:32:34,320 –> 00:32:36,720
git person است فراخوانی کنیم، مقدار hello th را به ما می دهد.
891
00:32:36,720 –> 00:32:38,399
en مقداری که
892
00:32:38,399 –> 00:32:40,960
قبلاً ارائه کرده بودید سلام جان باشه،
893
00:32:40,960 –> 00:32:42,480
حالا اجازه بدهید اجرا کنم، بنابراین به این ترتیب خیلی واضح تر خواهد بود،
894
00:32:42,480 –> 00:32:43,760
895
00:32:43,760 –> 00:32:47,360
حالا بیایید پایتون سه را اجرا کنیم، حالا بیایید
896
00:32:47,360 –> 00:32:49,120
نام فایل پایتون را بدهیم که کلاس
897
00:32:49,120 –> 00:32:51,279
و اشیاء است و سپس می توانید ببینید اینجا در حال
898
00:32:51,279 –> 00:32:53,600
چاپ است سلام جان حالا بیایید این عبارت را کپی
899
00:32:53,600 –> 00:32:56,640
کنیم و فرض کنیم میتوانید اینجا را ببینید
900
00:32:56,640 –> 00:32:59,760
ما میتوانیم به سن نیز دسترسی داشته باشیم، بنابراین
901
00:32:59,760 –> 00:33:02,720
902
00:33:07,120 –> 00:33:10,000
اگر این یکی را که در آن در
903
00:33:10,000 –> 00:33:12,159
حال فراخوانی از این شیء p
904
00:33:12,159 –> 00:33:14,799
است که شیء این شخص است، اکنون دوباره اجرا کنید سن شما مشکلی ندارد. کلاس و
905
00:33:14,799 –> 00:33:16,480
ما می توانیم به روشی دسترسی پیدا کنیم که
906
00:33:16,480 –> 00:33:18,640
شخص خوبی است که به ما می دهد مانند hello
907
00:33:18,640 –> 00:33:22,559
سپس john و سن شما در اینجا اعمال می شود،
908
00:33:22,559 –> 00:33:25,039
خوب حالا بیایید آن را اجرا کنیم و مقدار
909
00:33:25,039 –> 00:33:27,279
آن را ببینیم تا بتوانید ببینید که hello john
910
00:33:27,279 –> 00:33:29,519
سن شما 36 سال است، بنابراین این چگونه می توانیم
911
00:33:29,519 –> 00:33:31,600
از تابع سازنده استفاده کنیم خوب
912
00:33:31,600 –> 00:33:33,600
حالا بیایید در مورد وراثت کلاس پایتون بیاموزیم،
913
00:33:33,600 –> 00:33:35,840
بنابراین
914
00:33:35,840 –> 00:33:38,640
وراثت در پایتون دقیقاً چیست تا بتوانیم یک
915
00:33:38,640 –> 00:33:41,200
کلاس جدید را با تغییرات کم یا بدون تغییر
916
00:33:41,200 –> 00:33:43,760
در کلاس موجود
917
00:33:43,760 –> 00:33:46,480
تعریف کنیم. t تمام
918
00:33:46,480 –> 00:33:48,880
متدها و ویژگیها را از کلاس دیگری به ارث
919
00:33:48,880 –> 00:33:51,440
میبرد، کلاسی که از آن به
920
00:33:51,440 –> 00:33:54,080
ارث برده میشود، والد یا کلاس پایه نامیده میشود
921
00:33:54,080 –> 00:33:56,720
و کلاسی که
922
00:33:56,720 –> 00:33:58,880
از والدین یا کلاس پایه به ارث میبرد،
923
00:33:58,880 –> 00:34:00,799
فرزند یا کلاس مشتقشده
924
00:34:00,799 –> 00:34:02,159
925
00:34:02,159 –> 00:34:04,320
نامیده میشود. دفعه بعد از این عبارات زیاد استفاده خواهیم کرد،
926
00:34:04,320 –> 00:34:05,679
خب
927
00:34:05,679 –> 00:34:08,800
حالا تابع super چیست، بنابراین پایتون
928
00:34:08,800 –> 00:34:10,960
هم تابعی دارد که یک تابع super
929
00:34:10,960 –> 00:34:13,359
okay است که باعث میشود کلاس فرزند
930
00:34:13,359 –> 00:34:16,000
931
00:34:16,000 –> 00:34:17,679
با استفاده از تابع super ما، تمام متدها و ویژگیها را از والد به ارث ببرد.
932
00:34:17,679 –> 00:34:20,480
لازم نیست از
933
00:34:20,480 –> 00:34:22,079
نام عنصر والد استفاده کنید، بلکه به
934
00:34:22,079 –> 00:34:24,560
طور خودکار متدها و ویژگیهای والد خود را به ارث میبرد،
935
00:34:24,560 –> 00:34:26,879
خوب حالا صحبت کافی است،
936
00:34:26,879 –> 00:34:28,560
بگذارید مثالی را به شما نشان دهم تا
937
00:34:28,560 –> 00:34:29,918
938
00:34:29,918 –> 00:34:31,679
مثال ارثی را که در ابتکارات خواهیم یافت برای شما واضحتر
939
00:34:31,679 –> 00:34:33,679
شود. فایل underscore explore.pi
940
00:34:33,679 –> 00:34:34,560
خوب است
941
00:34:34,560 –> 00:34:36,480
حالا اینجا می توانید ببینید که در حال تعریف
942
00:34:36,480 –> 00:34:39,119
کلاسی به نام person okay هستید که در آن شما
943
00:34:39,119 –> 00:34:41,040
مانند ما یک تابع سازنده داریم
944
00:34:41,040 –> 00:34:42,480
که قبلاً می دانید e self در
945
00:34:42,480 –> 00:34:44,480
واقع به خود شی اشاره می کند،
946
00:34:44,480 –> 00:34:47,119
سپس نام و h پارامترهایی هستند که
947
00:34:47,119 –> 00:34:49,760
در آن نام را به
948
00:34:49,760 –> 00:34:51,679
ویژگی name و سن را به صفت age
949
00:34:51,679 –> 00:34:53,520
اختصاص می دهیم و ما تابع دیگری داریم
950
00:34:53,520 –> 00:34:55,679
که تابع grid person است که در آن
951
00:34:55,679 –> 00:34:57,040
به سادگی چاپ می کنیم. نامی را که ما
952
00:34:57,040 –> 00:34:59,200
در خود سازنده عرضه می کنیم خوب است،
953
00:34:59,200 –> 00:35:01,359
حالا این کلاس والد است، حالا ما در حال
954
00:35:01,359 –> 00:35:03,839
ایجاد یک کلاس دیگر هستیم که کلاس
955
00:35:03,839 –> 00:35:05,760
بیمار است و سپس فردی را عرضه می کنیم
956
00:35:05,760 –> 00:35:08,640
که یک شخص، فرد کلاس است، توجه داشته باشید
957
00:35:08,640 –> 00:35:10,640
که در اینجا okay و سپس در
958
00:35:10,640 –> 00:35:12,800
خود سازنده ما ابتدا
959
00:35:12,800 –> 00:35:15,119
فرد را با init فراخوانی می کنیم و سپس
960
00:35:15,119 –> 00:35:17,920
مقادیر اوکی را ارائه می دهیم و سپس می بینیم که مانند این است
961
00:35:17,920 –> 00:35:19,839
که
962
00:35:19,839 –> 00:35:22,880
فرد کلاس پایه را برای اضافه کردن ویژگی های جدید گسترش می دهید، بسیار
963
00:35:22,880 –> 00:35:26,000
خوب است، مانند اینکه داده های موردی را ندارد،
964
00:35:26,000 –> 00:35:27,920
بنابراین ما به داده های بیمار نیاز داریم.
965
00:35:27,920 –> 00:35:30,640
به همین دلیل است که آن شخص یک
966
00:35:30,640 –> 00:35:33,119
چیز معمولی است که فرد در حال حاضر
967
00:35:33,119 –> 00:35:36,000
با آن مورد صبور می شود، اکنون می توانیم
968
00:35:36,000 –> 00:35:38,160
بگوییم که ممکن است تب باشد، ممکن است سرد باشد،
969
00:35:38,160 –> 00:35:41,040
هر چه که باشد و سپس در واقع ما را
970
00:35:41,040 –> 00:35:43,839
تعیین می کنیم. g مقدار case به عنوان یک ویژگی
971
00:35:43,839 –> 00:35:45,920
برای این کلاس بیمار خوب است و شما
972
00:35:45,920 –> 00:35:48,880
میتوانید مورد را در اینجا ببینید، ما به سادگی
973
00:35:48,880 –> 00:35:51,119
مقدار را اینجا میپرسیم و سپس فرض کنید میخواهیم
974
00:35:51,119 –> 00:35:53,280
تابع جدیدی به نام print the
975
00:35:53,280 –> 00:35:56,160
case داشته باشیم، بنابراین print case و در آنجا به
976
00:35:56,160 –> 00:35:58,720
سادگی بیمار را چاپ میکنیم. case یک مورد امن
977
00:35:58,720 –> 00:36:01,599
است که مقدار در
978
00:36:01,599 –> 00:36:03,440
خود سازنده اعمال می شود، خوب
979
00:36:03,440 –> 00:36:04,320
حالا
980
00:36:04,320 –> 00:36:06,480
می توانید اینجا را ببینید اولین چیز این است که
981
00:36:06,480 –> 00:36:09,040
بیمار اشیاء برابر با بیمار می کند
982
00:36:09,040 –> 00:36:11,440
سپس به سادگی مقدار مانند
983
00:36:11,440 –> 00:36:15,760
نام جان جان سن 30 است و مورد
984
00:36:15,760 –> 00:36:17,520
مورد سرد است. خوب
985
00:36:17,520 –> 00:36:18,480
حالا
986
00:36:18,480 –> 00:36:20,400
در خط دوم ما در حال پرینت
987
00:36:20,400 –> 00:36:22,880
شخص شبکه ای هستیم بنابراین می گوید
988
00:36:22,880 –> 00:36:26,560
سلام جان
989
00:36:26,560 –> 00:36:29,760
990
00:36:29,760 –> 00:36:31,680
991
00:36:31,680 –> 00:36:33,599
992
00:36:33,599 –> 00:36:36,720
باشه شیء
993
00:36:36,720 –> 00:36:40,160
از کلاس بیمار که در واقع
994
00:36:40,160 –> 00:36:42,079
از شخص به ارث برده شده است زیرا
995
00:36:42,079 –> 00:36:44,000
حامل هایی که شخص را اعمال می کنند و شما به
996
00:36:44,000 –> 00:36:45,680
سادگی مقادیر را در
997
00:36:45,680 –> 00:36:48,320
کلاس شخص ارائه می دهید مانند این روش ah به ما
998
00:36:48,320 –> 00:36:50,400
constr داده می شود. مقادیر uctor و اینگونه است
999
00:36:50,400 –> 00:36:52,640
که ما به این
1000
00:36:52,640 –> 00:36:55,280
تابع midperson دسترسی داریم و همچنین به نسخه چاپی دسترسی داریم،
1001
00:36:55,280 –> 00:36:57,280
بنابراین اجازه دهید من آن را اجرا
1002
00:36:57,280 –> 00:36:58,400
کنم تا اکنون
1003
00:36:58,400 –> 00:37:00,560
درک شما کمتر از پایتون
1004
00:37:00,560 –> 00:37:01,520
3
1005
00:37:01,520 –> 00:37:04,240
و سپس آسان باشد. نام فایل ارثی است
1006
00:37:04,240 –> 00:37:05,119
خوب است،
1007
00:37:05,119 –> 00:37:07,520
پس بیایید آن را اجرا کنیم، می توانید ببینید
1008
00:37:07,520 –> 00:37:10,079
این موفقیت است، خیلی خوب است، سلام
1009
00:37:10,079 –> 00:37:12,320
جان و این همه پرونده موفقیت
1010
00:37:12,320 –> 00:37:14,240
نامیده می شود، بنابراین شما
1011
00:37:14,240 –> 00:37:16,880
متوجه می شوید که ما می توانیم ما به
1012
00:37:16,880 –> 00:37:20,000
متدهای کلاس والد دسترسی داریم و همچنین
1013
00:37:20,000 –> 00:37:23,119
می توانیم به توابع از کلاس درایو دسترسی داشته باشید
1014
00:37:23,119 –> 00:37:25,119
یا می توانید بگویید
1015
00:37:25,119 –> 00:37:27,200
کلاس فرزند اوکی است، بنابراین به این صورت است که ما می توانیم
1016
00:37:27,200 –> 00:37:28,960
از آن استفاده کنیم اکنون در اینجا می توانید ببینید که ما
1017
00:37:28,960 –> 00:37:31,760
1018
00:37:31,760 –> 00:37:33,839
به جای اینکه نام
1019
00:37:33,839 –> 00:37:37,280
شخص را در اینجا قرار دهیم، مانند شخص در آن قرار می دهیم. به سادگی می توانم
1020
00:37:37,280 –> 00:37:39,359
عملکرد فوق العاده را بگوییم مانند ما با عملکرد فوق العاده درست صحبت می کنیم
1021
00:37:39,359 –> 00:37:41,839
که در واقع به
1022
00:37:41,839 –> 00:37:42,640
1023
00:37:42,640 –> 00:37:44,400
کلاسی اشاره می کند که ما قبلاً در اینجا ارائه کرده ایم،
1024
00:37:44,400 –> 00:37:46,400
خوب به عنوان یک والدین، اکنون
1025
00:37:46,400 –> 00:37:49,040
اجازه دهید به سادگی این یکی را نظر بدهم، به این
1026
00:37:49,040 –> 00:37:51,440
ترتیب بسیار واضح تر خواهد بود و
1027
00:37:51,440 –> 00:37:54,560
می توانید ببینید e اینجا را ببینید،
1028
00:37:54,560 –> 00:37:55,839
بنابراین
1029
00:37:55,839 –> 00:37:58,320
فرض کنید ما فقط یک
1030
00:37:58,320 –> 00:38:01,200
super می دهیم و سپس در لوکس
1031
00:38:01,200 –> 00:38:02,720
تابع سازنده را که نام
1032
00:38:02,720 –> 00:38:05,599
و h می دهیم، بنابراین به سادگی به کلاس شخص اشاره می
1033
00:38:05,599 –> 00:38:07,200
کند زیرا
1034
00:38:07,200 –> 00:38:09,119
در اینجا می گوییم person کلاس والد است
1035
00:38:09,119 –> 00:38:11,040
درست است. این است که چگونه می توانید
1036
00:38:11,040 –> 00:38:13,520
از یک سوپر استفاده کنید تا بتوانید از صدا
1037
00:38:13,520 –> 00:38:15,760
زدن مجدد نام خودداری کنید، خوب حالا اگر
1038
00:38:15,760 –> 00:38:18,400
آن را شخص مانند شخص سلام می نامیم، این
1039
00:38:18,400 –> 00:38:20,400
تابع به
1040
00:38:20,400 –> 00:38:22,320
عملکرد نسخه git از کلاس شخص دسترسی خواهد داشت،
1041
00:38:22,320 –> 00:38:24,400
خوب حالا اجازه دهید من آن را اجرا کنم و بنابراین
1042
00:38:24,400 –> 00:38:25,760
میتوانید نتیجه را ببینید و
1043
00:38:25,760 –> 00:38:27,599
درک مجدد آن آسانتر خواهد بود،
1044
00:38:27,599 –> 00:38:30,320
بنابراین بیایید آن را پاک کنیم و سپس تابع را اجرا
1045
00:38:30,320 –> 00:38:31,520
کنیم
1046
00:38:31,520 –> 00:38:34,000
و سپس فایل را دوباره اجرا کنیم تا بتوانید
1047
00:38:34,000 –> 00:38:36,320
سلام جان را ببینید، بنابراین به این صورت میتوانیم
1048
00:38:36,320 –> 00:38:38,720
از وراثت و همچنین استفاده کنیم. شما
1049
00:38:38,720 –> 00:38:41,440
می توانید به جای نامگذاری از تابع super استفاده کنید
1050
00:38:41,440 –> 00:38:43,119
، ما به سادگی می توانیم تابع super را صدا
1051
00:38:43,119 –> 00:38:45,599
کنیم، امیدوارم که
1052
00:38:45,599 –> 00:38:47,520
اکنون موضوع بعدی را متوجه شده باشید، بیایید در مورد
1053
00:38:47,520 –> 00:38:50,240
وراثت کلاس پایتون یاد بگیریم، بنابراین ابتدا اجازه دهید
1054
00:38:50,240 –> 00:38:52,480
در مورد وراثت چندگانه صحبت کنیم
1055
00:38:52,480 –> 00:38:55,520
. اگر کلاسی که از بیش از یک
1056
00:38:55,520 –> 00:38:58,240
کلاس پایه مشتق شده باشد، به آن
1057
00:38:58,240 –> 00:39:00,320
python اولیه چندگانه می گویند، حالا اجازه دهید یک مثال سریع به شما نشان دهم،
1058
00:39:00,320 –> 00:39:03,040
1059
00:39:03,040 –> 00:39:05,359
نمونه اولیه چندگانه را در
1060
00:39:05,359 –> 00:39:07,680
فایل زیرخط زیرخط وراثت چندگانه پیدا خواهید کرد،
1061
00:39:07,680 –> 00:39:09,440
اگر به اینجا بیایید می بینید که
1062
00:39:09,440 –> 00:39:12,240
دارید تعریف می کنید. ابتدا یک نمونه پایه کلاس 1
1063
00:39:12,240 –> 00:39:14,240
می توانید کلاس را ببینید سپس نام کلاس
1064
00:39:14,240 –> 00:39:16,640
پایه نمونه است که در آن ما یک
1065
00:39:16,640 –> 00:39:19,280
تابع ساده نمونه پایه یک تابع داریم،
1066
00:39:19,280 –> 00:39:20,880
اکنون شما از قبل نقطه سلول به شی را می دانید،
1067
00:39:20,880 –> 00:39:22,560
خوب
1068
00:39:22,560 –> 00:39:24,160
حالا
1069
00:39:24,160 –> 00:39:26,240
نمونه را بر اساس تابع چاپ کنید. فقط
1070
00:39:26,240 –> 00:39:28,079
یک کار ساده انجام دهید که این در واقع یک
1071
00:39:28,079 –> 00:39:29,920
نمونه بر اساس تابع است که
1072
00:39:29,920 –> 00:39:31,200
1073
00:39:31,200 –> 00:39:33,119
اکنون کلاس دوم فراخوانی می شود، می توانید کلاس
1074
00:39:33,119 –> 00:39:35,280
نمونه پایه دو را ببینید که در آن
1075
00:39:35,280 –> 00:39:37,520
تابع دیگری را تعریف می کنید که بر اساس تابع نمونه
1076
00:39:37,520 –> 00:39:39,440
است و دوباره می دانید که خود این است
1077
00:39:39,440 –> 00:39:41,520
که شی را بگوید. به خود شی اشاره کنید
1078
00:39:41,520 –> 00:39:44,000
و شما در اینجا در داخل این تابع چاپ می کنید
1079
00:39:44,000 –> 00:39:45,760
که نمونه تابع پایه 2
1080
00:39:45,760 –> 00:39:47,119
خوب است
1081
00:39:47,119 –> 00:39:48,720
و در نهایت ما یک کلاس دیگر داریم
1082
00:39:48,720 –> 00:39:52,320
که کلاس multi united است.
1083
00:39:52,320 –> 00:39:54,720
در اینجا با دقت توجه داشته باشید که ما در حال ارائه
1084
00:39:54,720 –> 00:39:58,320
نمونه پایه 1 و نمونه پایه 2 هستیم. با
1085
00:39:58,320 –> 00:40:01,040
انجام این کار، می توانید در اینجا ببینید
1086
00:40:01,040 –> 00:40:04,400
که ما به هر دو تابع
1087
00:40:04,400 –> 00:40:06,560
و این تابع یا هر ویژگی دسترسی داریم،
1088
00:40:06,560 –> 00:40:08,480
اگر هر متغیری
1089
00:40:08,480 –> 00:40:09,599
در این
1090
00:40:09,599 –> 00:40:11,760
سطح طبقه بندی کننده وجود داشته باشد. دسترسی به
1091
00:40:11,760 –> 00:40:14,319
همه چیز اوکی است و اکنون یک شی ایجاد کرده ایم
1092
00:40:14,319 –> 00:40:17,200
که یک شیء وراثت چندگانه
1093
00:40:17,200 –> 00:40:18,319
1094
00:40:18,319 –> 00:40:20,800
از این کلاس است که چندین
1095
00:40:20,800 –> 00:40:23,839
وراثت است، به عنوان مثال کلاس okay تا
1096
00:40:23,839 –> 00:40:26,560
این شیء به
1097
00:40:26,560 –> 00:40:29,040
توابع این کلاس و همچنین
1098
00:40:29,040 –> 00:40:30,720
کلاس دوم که نمونه پایه دو است دسترسی داشته باشد.
1099
00:40:30,720 –> 00:40:31,520
کلاس
1100
00:40:31,520 –> 00:40:34,160
هر دو کلاس همه توابع
1101
00:40:34,160 –> 00:40:37,520
با این شی دسترسی خواهند داشت و برای
1102
00:40:37,520 –> 00:40:38,480
اینکه ثابت
1103
00:40:38,480 –> 00:40:41,520
کنم من شیء واحد چندگانه
1104
00:40:41,520 –> 00:40:43,680
نقطه نمونه را بر اساس تابعی
1105
00:40:43,680 –> 00:40:46,319
که در اینجا از نمونه یک است
1106
00:40:46,319 –> 00:40:49,440
و دوباره شیء ارثی چندگانه
1107
00:40:49,440 –> 00:40:52,079
نقطه نمونه پایه دو را فراخوانی کرده ام. تابع
1108
00:40:52,079 –> 00:40:54,880
این نمونه 2 کلاس ok است
1109
00:40:54,880 –> 00:40:56,640
و این تابع 2 کلاس مبتنی بر نمونه است
1110
00:40:56,640 –> 00:40:57,839
1111
00:40:57,839 –> 00:40:59,680
در حال حاضر اگر آن را خوب اجرا کنید باید
1112
00:40:59,680 –> 00:41:01,440
بتوانید اکنون آن را ببینید. در اینجا من در حال
1113
00:41:01,440 –> 00:41:05,359
چاپ کردن چند نقطه وراثت هستم
1114
00:41:05,359 –> 00:41:07,359
1115
00:41:07,359 –> 00:41:09,680
کلاس زیرخط زیرخط بر اساس نقطه زیرخط
1116
00:41:09,680 –> 00:41:11,920
با استفاده از این میتوانید بفهمید که
1117
00:41:11,920 –> 00:41:14,720
این کلاس اشیاء خاص از کدام کلاسها
1118
00:41:14,720 –> 00:41:17,599
مشتق شده است، اجازه دهید به شما نشان دهم،
1119
00:41:17,599 –> 00:41:18,960
پس بیایید آن را اجرا کنیم
1120
00:41:18,960 –> 00:41:21,280
python 3
1121
00:41:21,280 –> 00:41:24,240
سپس مثال وراثت چندگانه
1122
00:41:24,240 –> 00:41:27,599
و اگر شما آن را اجرا کنید، می توانید ببینید که
1123
00:41:27,599 –> 00:41:30,560
از اینجا یک تابع مبتنی بر نمونه ساده
1124
00:41:30,560 –> 00:41:31,680
1125
00:41:31,680 –> 00:41:32,800
1126
00:41:32,800 –> 00:41:34,800
چاپ شده است و دوباره تابع نمونه پایه 2
1127
00:41:34,800 –> 00:41:37,119
را از این تابع چاپ می کند، می توانید
1128
00:41:37,119 –> 00:41:40,400
تابع پایه 2 نمونه را ببینید و
1129
00:41:40,400 –> 00:41:43,359
کلاسی را که این
1130
00:41:43,359 –> 00:41:45,520
کلاس خاص از آن مشتق شده
1131
00:41:45,520 –> 00:41:48,240
است، چاپ می کند. نمونه پایه 1 و نمونه پایه دو، بنابراین
1132
00:41:48,240 –> 00:41:50,079
این دو والد از این کلاس دو والد،
1133
00:41:50,079 –> 00:41:52,640
این تابع به درستی مشتق شده است،
1134
00:41:52,640 –> 00:41:54,880
بنابراین ما می توانیم از طریق این عبارت خاص متوجه شویم، بسیار
1135
00:41:54,880 –> 00:41:57,680
خوب، امیدوارم اکنون متوجه شده باشید،
1136
00:41:57,680 –> 00:41:59,440
بیایید در مورد وراثت چند سطحی
1137
00:41:59,440 –> 00:42:01,599
بیاموزیم.
1138
00:42:01,599 –> 00:42:04,160
وراثت چند سطحی بنابراین در پایتون یک
1139
00:42:04,160 –> 00:42:06,960
کلاس می تواند از یک کلاس مشتق شده ارث بری کند
1140
00:42:06,960 –> 00:42:09,280
و همچنین به آن وراثت چند سطحی می گویند.
1141
00:42:09,280 –> 00:42:11,359
اجازه دهید من به شما نشان دهم به عنوان مثال
1142
00:42:11,359 –> 00:42:13,440
اما قبل از آن می توانید در اینجا در
1143
00:42:13,440 –> 00:42:16,160
مثال هایی که من از دستورات pass استفاده می کنم، ببینید
1144
00:42:16,160 –> 00:42:17,920
که عبارت pass چیست، بنابراین عبارت pass
1145
00:42:17,920 –> 00:42:19,680
در واقع یک دستور تهی است
1146
00:42:19,680 –> 00:42:22,480
، تفاوت بین یک نظر و یک
1147
00:42:22,480 –> 00:42:24,960
دستور گذشته، سپس پایتون است که یک
1148
00:42:24,960 –> 00:42:27,119
نظر در واقع به طور کامل نادیده گرفته می شود.
1149
00:42:27,119 –> 00:42:29,200
ادمین گذشته نادیده گرفته نمی شود،
1150
00:42:29,200 –> 00:42:31,280
فقط از دستور تهی
1151
00:42:31,280 –> 00:42:33,119
رد شده
1152
00:42:33,119 –> 00:42:34,720
1153
00:42:34,720 –> 00:42:36,800
1154
00:42:36,800 –> 00:42:39,440
1155
00:42:39,440 –> 00:42:41,200
1156
00:42:41,200 –> 00:42:43,200
است. کلاس دیگری که سطح دو
1157
00:42:43,200 –> 00:42:45,520
و سطح دو است، سطح
1158
00:42:45,520 –> 00:42:47,920
یک را عرضه می کنیم و کلاس دیگری داریم که
1159
00:42:47,920 –> 00:42:50,319
کلاس چند سطحی است که در آن سطح دو را تامین می کند،
1160
00:42:50,319 –> 00:42:53,760
بنابراین سطح یک در سطح دو می
1161
00:42:53,760 –> 00:42:56,800
توانید سطح دو را در واقع
1162
00:42:56,800 –> 00:42:58,640
کلاس والد سطح دو ببینید. سطح یک است و
1163
00:42:58,640 –> 00:43:00,160
کلاس بازی چند سطحی
1164
00:43:00,160 –> 00:43:02,480
سطح دو است و البته
1165
00:43:02,480 –> 00:43:04,319
سطح یک کلاس مادر
1166
00:43:04,319 –> 00:43:07,119
چند سطحی است و این نشان می دهد که این
1167
00:43:07,119 –> 00:43:09,200
کلاس خاص از کدام cla است. sses
1168
00:43:09,200 –> 00:43:11,359
از okay مشتق شده است، حالا اجازه دهید من آن را اجرا کنم تا
1169
00:43:11,359 –> 00:43:13,119
برای شما روشن تر شود،
1170
00:43:13,119 –> 00:43:15,760
پس بیایید آن را اجرا کنیم و می توانید ببینید که این
1171
00:43:15,760 –> 00:43:18,720
خاص چاپ