در این مطلب، ویدئو 25. دکوراتورها [آموزش برنامه نویسی پایتون 3] با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:09:07
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,089 –> 00:00:02,370
دوستان عزیز ما امروز قصد داریم به دکوراتورها در پایتون نگاهی بیندازیم،
2
00:00:02,370 –> 00:00:04,890
حالا
3
00:00:04,890 –> 00:00:08,069
وقتی در مورد دکوراتورها به صورت آنلاین مطالعه می کنید
4
00:00:08,069 –> 00:00:10,590
، مفهوم پیچیده ای به نظر می رسد، اما در واقع
5
00:00:10,590 –> 00:00:12,900
آنقدرها هم پیچیده نیست و هدف این
6
00:00:12,900 –> 00:00:15,780
آموزش توضیح دکوراتورها به
7
00:00:15,780 –> 00:00:20,100
روشی بسیار ساده و آسان است. روشی
8
00:00:20,100 –> 00:00:21,660
که قصد داریم این آموزش را شروع کنیم این است که
9
00:00:21,660 –> 00:00:24,390
ابتدا بیایید در مورد مشکلی که
10
00:00:24,390 –> 00:00:27,570
دکوراتورها سعی در حل آن دارند بحث کنیم، مانند
11
00:00:27,570 –> 00:00:30,090
آنچه که واقعاً نیاز دکوراتورها
12
00:00:30,090 –> 00:00:32,759
در اینجا وجود دارد، من دو تابع دارم
13
00:00:32,759 –> 00:00:35,250
مربع را محاسبه می کنم و مکعب را محاسبه می کنم و این
14
00:00:35,250 –> 00:00:37,500
توابع چه کاری انجام می دهند، برای مثال بیایید
15
00:00:37,500 –> 00:00:39,270
نگاه کنیم این تابع ابتدا
16
00:00:39,270 –> 00:00:41,579
آرایه ای از اعداد را
17
00:00:41,579 –> 00:00:42,540
به عنوان ورودی
18
00:00:42,540 –> 00:00:44,250
می گیرد، فقط در آرایه تکرار می شود
19
00:00:44,250 –> 00:00:46,980
و مربع آن
20
00:00:46,980 –> 00:00:49,710
عدد را محاسبه می کند و آن را در یک نتیجه
21
00:00:49,710 –> 00:00:51,989
مکعب محاسبه می کند همان کار را انجام می دهد اما
22
00:00:51,989 –> 00:00:54,570
به جای مربع، یک مکعب را محاسبه می کند
23
00:00:54,570 –> 00:00:58,500
بسیار خوب توابع بسیار آسان و
24
00:00:58,500 –> 00:01:01,199
در اینجا من آن توابع را برای
25
00:01:01,199 –> 00:01:06,240
محدوده 1 تا این شماره فراخوانی می کنم، اکنون اغلب
26
00:01:06,240 –> 00:01:08,430
شما نیاز به اندازه گیری
27
00:01:08,430 –> 00:01:11,400
عملکرد یک تابع دارید. منظورم از عملکرد و عملکرد
28
00:01:11,400 –> 00:01:14,490
چقدر طول می کشد تا هر تابع
29
00:01:14,490 –> 00:01:18,240
اجرا شود و برای اندازه گیری
30
00:01:18,240 –> 00:01:21,840
زمان باید از ماژول زمان استفاده کنید
31
00:01:21,840 –> 00:01:24,420
منظورم این است که این یکی از روش هایی است که من معمولاً
32
00:01:24,420 –> 00:01:27,180
دوست دارم این کار را انجام دهم که در آن زمان شروع را بگیرم.
33
00:01:27,180 –> 00:01:29,460
بنابراین کاری که این کار انجام می دهد این است که وقتی
34
00:01:29,460 –> 00:01:31,680
اجرای تابع در این نقطه
35
00:01:31,680 –> 00:01:33,990
باشد، زمان شروع را می گیرد و پس
36
00:01:33,990 –> 00:01:37,460
از اتمام کار، زمان پایان را می گیرید و
37
00:01:37,460 –> 00:01:45,439
در اینجا می گویید محاسبه مربع بحث
38
00:01:45,439 –> 00:01:51,329
چقدر طول کشید، بنابراین n منهای شروع طول می کشد.
39
00:01:51,329 –> 00:01:54,509
در سال 2000، این نتیجه را در ثانیه به شما می دهد
40
00:01:54,509 –> 00:01:56,310
و من
41
00:01:56,310 –> 00:01:59,009
آن را در هزار ضرب می کنم تا یک نتیجه
42
00:01:59,009 –> 00:02:02,219
در میلی ثانیه ایجاد شود، بنابراین می گوید خوب
43
00:02:02,219 –> 00:02:07,170
، این چند میلی ثانیه طول کشید و
44
00:02:07,170 –> 00:02:10,110
ما همین کار را برای این تابع انجام می دهیم
45
00:02:10,110 –> 00:02:11,730
زیرا شما می خواهید اندازه
46
00:02:11,730 –> 00:02:14,310
گیری عملکرد هر دوی این
47
00:02:14,310 –> 00:02:17,360
توابع بسیار خوب است
48
00:02:22,310 –> 00:02:26,069
و من این توابع را
49
00:02:26,069 –> 00:02:29,400
در اینجا در زیر بسیار ساده می نامم
50
00:02:29,400 –> 00:02:32,610
وقتی برنامه را اجرا می کنم
51
00:02:32,610 –> 00:02:34,739
عملکردی را می بینم که عملکرد اول
52
00:02:34,739 –> 00:02:37,290
14 میلی ثانیه طول کشید و تابع دوم اکنون 19 ثانیه طول کشید.
53
00:02:37,290 –> 00:02:40,290
مشکل این کد این است که
54
00:02:40,290 –> 00:02:43,799
فرض کنید وقتی دارید یک پروژه نرم افزاری پیچیده
55
00:02:43,799 –> 00:02:46,230
دارید اما 200 عملکرد را انجام می
56
00:02:46,230 –> 00:02:48,660
دهد، بنابراین برای اندازه گیری
57
00:02:48,660 –> 00:02:51,030
عملکرد تمام آن 200
58
00:02:51,030 –> 00:02:54,090
عملکرد باید زمان پایان زمان شروع
59
00:02:54,090 –> 00:02:56,930
را دقیقاً همان خط کد بنویسید.
60
00:02:56,930 –> 00:03:00,780
اکنون در هر تابعی این خوب نیست، می
61
00:03:00,780 –> 00:03:02,130
بینید که این خطوط
62
00:03:02,130 –> 00:03:05,489
شروع به تکرار می کنند و هر دوی این خطوط
63
00:03:05,489 –> 00:03:07,980
در هر تابعی
64
00:03:07,980 –> 00:03:10,560
که می خواهید عملکرد را اندازه گیری کنید تکرار می شوند
65
00:03:10,560 –> 00:03:13,680
مشکل دوم این است که یک منطق
66
00:03:13,680 –> 00:03:15,599
در این تابع وجود دارد که اکنون منطق وجود دارد.
67
00:03:15,599 –> 00:03:18,299
68
00:03:18,299 –> 00:03:20,010
بنابراین منطق اصلی این تابع
69
00:03:20,010 –> 00:03:22,109
محاسبه مربع است، اکنون شما
70
00:03:22,109 –> 00:03:25,859
آن منطق را با کد زمانبندی درهم میریزید و
71
00:03:25,859 –> 00:03:29,069
باعث میشود کد کمتر قابل خواندن باشد.
72
00:03:29,069 –> 00:03:30,780
73
00:03:30,780 –> 00:03:33,720
بنابراین
74
00:03:33,720 –> 00:03:35,910
decorator به شما اجازه می دهد تا عملکرد خود را
75
00:03:35,910 –> 00:03:39,480
در یک تابع دیگر بپیچید، بنابراین اجازه دهید به
76
00:03:39,480 –> 00:03:41,459
شما نشان دهم که چگونه این کار را انجام می دهید، بنابراین ابتدا می
77
00:03:41,459 –> 00:03:44,069
خواهم این کد زمان بندی را کاملاً حذف کنم،
78
00:03:44,069 –> 00:03:45,600
بنابراین این یک زمان است. کد ing را
79
00:03:45,600 –> 00:03:48,420
که اکنون حذف می کنم و می
80
00:03:48,420 –> 00:03:51,660
خواهم تابعی داشته باشم که منطق
81
00:03:51,660 –> 00:03:53,639
آن تابع را داشته باشد، بنابراین
82
00:03:53,639 –> 00:03:55,980
این تابع اکنون بسیار تمیز به نظر می رسد،
83
00:03:55,980 –> 00:03:58,130
بنابراین برای انجام دکوراتور
84
00:03:58,130 –> 00:04:02,489
ابتدا باید تابع wrapper را تعریف
85
00:04:02,489 –> 00:04:04,049
کنید.
86
00:04:04,049 –> 00:04:06,569
تابع wrapper من زمان آن را فراخوانی می کنم و
87
00:04:06,569 –> 00:04:08,760
تابع wrapper تابع را به عنوان
88
00:04:08,760 –> 00:04:12,299
یک آرگومان می گیرد، اکنون توابع
89
00:04:12,299 –> 00:04:15,660
اشیاء درجه یک در پایتون هستند.
90
00:04:15,660 –> 00:04:18,599
91
00:04:18,599 –> 00:04:21,060
92
00:04:21,060 –> 00:04:23,849
از
93
00:04:23,849 –> 00:04:25,300
تابع دیگری که یاد گرفتید،
94
00:04:25,300 –> 00:04:27,280
95
00:04:27,280 –> 00:04:30,250
همینطور که ما به نوشتن یا کدنویسی ادامه میدهیم، این را بایستید، بنابراین در این تابع،
96
00:04:30,250 –> 00:04:33,039
تابع دیگری را تعریف میکنم و آن
97
00:04:33,039 –> 00:04:37,840
را wrapper مینامم، بنابراین توجه داشته باشید که پایتون به
98
00:04:37,840 –> 00:04:39,610
شما اجازه میدهد تابع تودرتو بنویسید تا
99
00:04:39,610 –> 00:04:41,680
بتوانید یک تابع را در یک
100
00:04:4