در این مطلب، ویدئو بسته شدن پایتون | درک بسته شدن پایتون | چرا آنها مفید هستند با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:13:48
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,060 –> 00:00:02,040
در این ویدیو قصد دارم
2
00:00:02,040 –> 00:00:05,490
نحوه استفاده از توابع و توابع تو در تو در
3
00:00:05,490 –> 00:00:08,309
پایتون را به شما نشان دهم، پس بیایید
4
00:00:08,309 –> 00:00:10,830
شروع کنیم تا با توابع تودرتو شروع کنیم،
5
00:00:10,830 –> 00:00:14,580
بنابراین در پایتون میتوانیم تابع تودرتو را تعریف کنیم،
6
00:00:14,580 –> 00:00:17,490
یعنی میتوانیم
7
00:00:17,490 –> 00:00:20,970
یک تابع را در داخل یک تابع تعریف کنیم. بنابراین
8
00:00:20,970 –> 00:00:23,340
اجازه دهید این مثال را برای شما بیاورم و در این
9
00:00:23,340 –> 00:00:25,890
مثال این تابع که یک
10
00:00:25,890 –> 00:00:29,550
تابع خارجی است مقداری متن یا پیام را به
11
00:00:29,550 –> 00:00:33,329
عنوان آرگومان می گیرد و من یک تابع دیگر
12
00:00:33,329 –> 00:00:36,960
را در داخل تابع خارجی تعریف کرده ام و
13
00:00:36,960 –> 00:00:40,079
آن را به عنوان تابع داخلی نامگذاری کرده ام که
14
00:00:40,079 –> 00:00:43,079
مقدار آن را چاپ می کند. متنی را
15
00:00:43,079 –> 00:00:46,469
که در تابع خارجی ارسال کرده ایم و
16
00:00:46,469 –> 00:00:49,350
فقط تابع داخلی را در محدوده تابع بیرونی فراخوانی می کنیم،
17
00:00:49,350 –> 00:00:52,050
بنابراین این تابع به
18
00:00:52,050 –> 00:00:55,860
صورت محلی در داخل تابع خارجی اعلام می شود
19
00:00:55,860 –> 00:00:58,620
و ما فقط این
20
00:00:58,620 –> 00:01:01,199
تابع داخلی را در داخل این تابع خارجی فراخوانی
21
00:01:01,199 –> 00:01:03,899
می کنیم، به عبارت دیگر می توانیم همچنین
22
00:01:03,899 –> 00:01:06,350
بگویید که این تابع خارجی یک
23
00:01:06,350 –> 00:01:09,360
تابع محصور کننده است و این
24
00:01:09,360 –> 00:01:14,100
تابع داخلی تابع محلی این
25
00:01:14,100 –> 00:01:16,650
تابع خارجی است و حالا وقتی این تابع خارجی را فراخوانی می کنم
26
00:01:16,650 –> 00:01:18,689
و اجازه می دهم اجرا کنم کد
27
00:01:18,689 –> 00:01:21,930
فقط مقداری
28
00:01:21,930 –> 00:01:24,960
را که به عنوان آرگومان ارسال کرده ایم چاپ می کند، بنابراین ما
29
00:01:24,960 –> 00:01:27,720
همین آرگومان متنی را ارسال کردیم که
30
00:01:27,720 –> 00:01:30,600
یک بار دیگر به دستور چاپ
31
00:01:30,600 –> 00:01:32,700
تابع داخلی منتقل می شود و چون
32
00:01:32,700 –> 00:01:34,770
این تابع داخلی را در داخل این
33
00:01:34,770 –> 00:01:37,530
تابع احاطه کننده فراخوانی می کنیم، آن را چاپ می کند. مقدار را
34
00:01:37,530 –> 00:01:40,170
با استفاده از این عبارت، بنابراین وقتی
35
00:01:40,170 –> 00:01:43,680
یک تابع را در داخل تابع دیگر اعلام می
36
00:01:43,680 –> 00:01:47,729
کنید، به آن توده توابع می
37
00:01:47,729 –> 00:01:49,710
گویند، اجازه دهید یک مثال دیگر از تابع تودرتو به شما ارائه دهم
38
00:01:49,710 –> 00:01:52,950
و من این تابع pop را تعریف کرده ام
39
00:01:52,950 –> 00:01:56,640
که تابع بیرونی
40
00:01:56,640 –> 00:02:00,420
یا تابع محصور کننده ما است و در اینجا من دارم
41
00:02:00,420 –> 00:02:02,100
تابعی به نام
42
00:02:02,100 –> 00:02:06,000
get last item تعریف کرد که تابع داخلی ما
43
00:02:06,000 –> 00:02:08,910
یا تابع محلی برای
44
00:02:08,910 –> 00:02:11,310
تابع pop است، اکنون این تابع pop
45
00:02:11,310 –> 00:02:13,250
لیست را به عنوان آرگومان
46
00:02:13,250 –> 00:02:15,980
می گیرد، ما یک تابع محلی را در داخل
47
00:02:15,980 –> 00:02:18,440
این تابع pop تعریف کرده ایم و کاری که این
48
00:02:18,440 –> 00:02:21,080
تابع محلی get آخرین مورد انجام می دهد این است. هر زمان
49
00:02:21,080 –> 00:02:23,720
که لیستی را به عنوان آرگومان به این
50
00:02:23,720 –> 00:02:26,090
تابع محلی ارسال می کنید
51
00:02:26,090 –> 00:02:30,080
، آخرین عنصر لیست را پیدا کرده و
52
00:02:30,080 –> 00:02:34,070
آخرین مقدار را برمی گرداند. از این لیست، بنابراین در
53
00:02:34,070 –> 00:02:37,610
اینجا این آخرین فهرست فهرست است و سپس
54
00:02:37,610 –> 00:02:39,770
آخرین مورد
55
00:02:39,770 –> 00:02:42,020
از لیست را که به عنوان آرگومان ارسال
56
00:02:42,020 –> 00:02:44,540
می شود برمی گرداند، اکنون ممکن است بدانید که می
57
00:02:44,540 –> 00:02:47,120
توانید تابعی به نام remove را در لیست های خود فراخوانی کنید
58
00:02:47,120 –> 00:02:51,230
که استفاده می شود. برای حذف برخی از آیتم ها
59
00:02:51,230 –> 00:02:54,380
از لیست، بنابراین من فقط
60
00:02:54,380 –> 00:02:56,750
تابع remove را در لیست فراخوانی می کنم و به عنوان
61
00:02:56,750 –> 00:02:59,270
آرگومان لیست، تابعی را ارسال
62
00:02:59,270 –> 00:03:02,239
می کنم که آخرین عنصر لیست را پیدا می کند،
63
00:03:02,239 –> 00:03:05,540
بنابراین این آخرین عنصر را به ما می دهد.
64
00:03:05,540 –> 00:03:08,060
لیست و این
65
00:03:08,060 –> 00:03:11,120
عنصر آخر از لیست حذف می شوند
66
00:03:11,120 –> 00:03:13,580
و در نهایت من به سادگی
67
00:03:13,580 –> 00:03:16,160
لیستی را که به عنوان آرگومان به
68
00:03:16,160 –> 00:03:18,560
تابع pop ارسال می شود برمی گردانم، بنابراین بیایید بگوییم
69
00:03:18,560 –> 00:03:20,090
این لیستی است که روی آن کار می کنیم و
70
00:03:20,090 –> 00:03:22,610
دارای پنج عنصر است و ما در حال
71
00:03:22,610 –> 00:03:25,940
فراخوانی تابع pop در این لیست بارها
72
00:03:25,940 –> 00:03:28,730
و بارها سه بار هستند، بنابراین اجازه دهید من کد را اجرا کنم
73
00:03:28,730 –> 00:03:30,320
و ببینیم چه اتفاقی میافتد
74
00:03:30,320 –> 00:03:32,720
تا بتوانید ببینید وقتی اولین پاپ فراخوانی
75
00:03:32,720 –> 00:03:34,760
میشود، آخرین عنصر
76
00:03:34,760 –> 00:03:37,549
که شش عدد است از لیست حذف میشود و سپس
77
00:03:37,549 –> 00:03:40,190
هر زمان که عنصر دوم است. پاپ حدودا است به نظر می رسد
78
00:03:40,190 –> 00:03:42,799
که این چهار مورد را حذف می کند و هر
79
00:03:42,799 –> 00:03:45,079
زمان که متد سوم پاپ فراخوانی شود،
80
00:03:45,079 –> 00:03:48,260
این سه و غیره را حذف می کند، بنابراین
81
00:03:48,260 –> 00:03:50,239
اینگونه است که می توانید از توابع تو
82
00:03:50,239 –> 00:03:53,480
در تو در پایتون استفاده کنید، اکنون اجازه دهید در مورد
83
00:03:53,480 –> 00:03:56,450
بسته شدن ها صحبت کنیم، بنابراین من از همان استفاده می کنم.
84
00:03:56,450 –> 00:03:59,090
مثال تابع تودرتو که
85
00:03:59,090 –> 00:04:01,910
قبلاً به شما نشان دادم، بنابراین این تابع تودرتو
86
00:04:01,910 –> 00:04:04,160
در حال حاضر برای تبدیل این
87
00:04:04,160 –> 00:04:07,610
تابع تودرتو به یک بسته است، کاری که
88
00:04:07,610 –> 00:04:11,000
در اینجا باید انجام دهیم این است که باید
89
00:04:11,000 –> 00:04:14,900
تابع داخلی را بدون پرانتز برگردانیم،
90
00:04:14,900 –> 00:04:18,440
بنابراین چیزی که در اینجا باید به آن توجه شود این است. ما
91
00:04:18,440 –> 00:04:22,039
نیازی به برگرداندن این تابع داخلی
92
00:04:22,039 –> 00:04:24,530
با پرانتز نداریم، باید این
93
00:04:24,530 –> 00:04:27,550
تابع داخلی را بدون هیچ کدام برگردانیم
94
00:04:27,550 –> 00:04:30,460
و این ساده ترین مثال از
95
00:04:30,460 –> 00:04:33,909
بسته شدن است، بنابراین یک بسته شدن چیست، بنابراین
96
00:04:33,909 –> 00:04:37,150
یک بسته تابعی است که مقدار بازگشتی آن
97
00:04:37,150 –> 00:04:40,000
به مقدار بستگی دارد یک یا چند
98
00:04:40,000 –> 00:04:43,599
متغیر که خارج از تابع اعلان می شوند،
99
00:04:43,599 –> 00:04:46,210
بنابراین در این مثال این
100
00:04:46,210 –> 00:04:49,990
متغیر متنی خارج از تابع داخلی اعلان می
101
00:04:49,990 –> 00:04:53,349
شود و مقدار این
102
00:04:53,349 –> 00:04:56,889
تابع داخلی به این متغیر متنی که اعلان می شود بستگی دارد
103
00:04:56,889 –> 00:05:00,250
. ed خارج از این
104
00:05:00,250 –> 00:05:03,699
تابع داخلی است و باعث می شود که یک بسته شود و
105
00:05:03,699 –> 00:05:06,219
بسته شدن دارای خاصیت خاصی است که
106
00:05:06,219 –> 00:05:09,909
این شی تابع بسته
107
00:05:09,909 –> 00:05:14,110
مقدار را در محدوده محصور به خاطر می آورد حتی اگر
108
00:05:14,110 –> 00:05:17,379
در حافظه وجود نداشته باشد، بنابراین من
109
00:05:17,379 –> 00:05:19,870
به شما توضیح خواهم داد که اما اجازه دهید فقط به
110
00:05:19,870 –> 00:05:22,449
شما نشان دهم نحوه استفاده از این تابع خارجی
111
00:05:22,449 –> 00:05:25,659
که اکنون از آن بسته استفاده می کند، بنابراین من
112
00:05:25,659 –> 00:05:28,240
یک متغیر a را اعلام می کنم به این معنی که
113
00:05:28,240 –> 00:05:30,430
چون این تابع خارجی
114
00:05:30,430 –> 00:05:33,699
تابع داخلی را برمی گرداند به این معنی که a حاوی
115
00:05:33,699 –> 00:05:36,370
اکنون تابع داخلی است، بنابراین می توانیم از
116
00:05:36,370 –> 00:05:39,279
این a به عنوان تابع استفاده کنیم. برای اینکه
117
00:05:39,279 –> 00:05:42,099
از این a به عنوان تابع استفاده کنیم، فقط میتوانیم آن را
118
00:05:42,099 –> 00:05:45,069
با استفاده از پرانتز a صدا کنیم،
119
00:05:45,069 –> 00:05:48,310
زیرا این تابع هیچ آرگومان نمیگیرد،
120
00:05:48,310 –> 00:05:49,990
بنابراین هیچ
121
00:05:49,990 –> 00:05:52,630
آرگومانی را در اینجا ارسال نمیکنیم، بلکه آن را فقط
122
00:05:52,630 –> 00:05:54,370
به عنوان یک تابع فراخوانی میکنیم، زیرا این
123
00:05:54,370 –> 00:05:57,219
تابع بیرونی فقط تابع داخلی را برمیگردانیم،
124
00:05:57,219 –> 00:05:59,889
بنابراین بیایید کد را اجرا کنیم و
125
00:05:59,889 –> 00:06:02,050
ببینیم وقتی این کد را اجرا میکنیم چه اتفاقی میافتد،
126
00:06:02,050 –> 00:06:04,569
بنابراین میتوانید ببینید که hello چاپ میشود که
127
00:06:04,569 –> 00:06:06,210
با استفاده از این دستور چاپ چاپ میشود
128
00:06:06,210 –> 00:06:11,020
هر زمان که این را تابع نامیدیم. n بنابراین اگر من
129
00:06:11,020 –> 00:06:13,629
فقط این را تابع بدون
130
00:06:13,629 –> 00:06:16,419
روش چاپ صدا کنم،
131
00:06:16,419 –> 00:06:19,840
توخالی چاپ می شود زیرا در اینجا ما فقط
132
00:06:19,840 –> 00:06:22,990
از چاپ برای چاپ متن
133
00:06:22,990 –> 00:06:26,770
استفاده می کنیم که با استفاده از تابع خارجی ارسال می شود، اکنون
134
00:06:26,770 –> 00:06:29,080
همانطور که گفتم بسته شدن یک شی تابع است
135
00:06:29,080 –> 00:06:31,629
که به خاطر می آورد. مقدار در
136
00:06:31,629 –> 00:06:35,409
محدوده محصور کننده حتی اگر
137
00:06:35,409 –> 00:06:38,560
در حافظه وجود نداشته باشند، بنابراین محدوده محصور ما
138
00:06:38,560 –> 00:06:40,650
تابع خارجی است،
139
00:06:40,650 –> 00:06:42,930
بنابراین حتی اگر تابع خارجی را
140
00:06:42,930 –> 00:06:47,729
پس از اعلام عبارت حذف کنیم و اگر
141
00:06:47,729 –> 00:0