در این مطلب، ویدئو python: functools.partial (مبتدی – متوسط) آنتونی #254 را توضیح می دهد با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:06:47
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:03,120 –> 00:00:04,240
سلام و
2
00:00:04,240 –> 00:00:05,759
به ویدیوی دیگری در این ویدیو خوش آمدید، ما قصد
3
00:00:05,759 –> 00:00:07,600
داریم در مورد ابزارهای فانک نقطه ای صحبت کنیم
4
00:00:07,600 –> 00:00:10,000
که اگر با برنامه نویسی کاربردی آشنا هستید،
5
00:00:10,000 –> 00:00:11,599
6
00:00:11,599 –> 00:00:12,799
چیزی به نام currying را پیاده سازی می کند،
7
00:00:12,799 –> 00:00:14,799
من توضیح خواهم داد که همه اینها به چه معناست
8
00:00:14,799 –> 00:00:16,800
و چند نمونه به شما نشان می دهم.
9
00:00:16,800 –> 00:00:19,920
پس بیایید به همه چیز
10
00:00:19,920 –> 00:00:21,199
11
00:00:21,199 –> 00:00:23,600
12
00:00:23,600 –> 00:00:26,880
13
00:00:26,880 –> 00:00:30,000
بپردازیم، بنابراین برای شروع، من فقط یک تابع بسیار ساده میسازم، بیایید فقط به عنوان یک مثال ساده اضافه کنیم که در آن یک int یا یک float و
14
00:00:30,000 –> 00:00:33,680
b float خواهیم داشت و میرویم برای
15
00:00:33,680 –> 00:00:36,399
برگرداندن یک شناور و ما فقط یک
16
00:00:36,399 –> 00:00:36,719
17
00:00:36,719 –> 00:00:38,879
تابع بعلاوه خیلی ساده را برمی گردانیم، فقط برای
18
00:00:38,879 –> 00:00:39,920
شروع
19
00:00:39,920 –> 00:00:43,760
t اکنون pi و پنج نقطه و
20
00:00:43,760 –> 00:00:45,520
ده نقطه و باید پانزده نقطه را دریافت کنیم
21
00:00:45,520 –> 00:00:47,200
22
00:00:47,200 –> 00:00:49,120
بسیار خوب، بنابراین این یک تابع بسیار ساده است،
23
00:00:49,120 –> 00:00:50,640
ایده پشت کارری
24
00:00:50,640 –> 00:00:52,960
در برنامه نویسی تابعی این است که یک
25
00:00:52,960 –> 00:00:54,239
تابع و مقداری
26
00:00:54,239 –> 00:00:56,559
مجموعه پارامتر را می گیرد و این دو را
27
00:00:56,559 –> 00:00:58,640
با هم ترکیب می کند و یک تابع جدید برمی گرداند
28
00:00:58,640 –> 00:01:00,120
که در آن مجموعه پارامتر
29
00:01:00,120 –> 00:01:02,239
از قبل um پر شده است،
30
00:01:02,239 –> 00:01:03,920
بنابراین ممکن است
31
00:01:03,920 –> 00:01:05,920
تابعی را تصور کنید که به نام
32
00:01:05,920 –> 00:01:10,080
uh make adder نامیده می شود و آن ac است. در واقع،
33
00:01:10,080 –> 00:01:11,760
ما به فراخوانی نیاز داریم زیرا
34
00:01:11,760 –> 00:01:13,280
یک تابع را برمی
35
00:01:13,280 –> 00:01:15,040
گردانیم، بنابراین این تابع جمع کننده
36
00:01:15,040 –> 00:01:16,720
مقداری مقدار می گیرد و سپس یک تابع جدید ایجاد می
37
00:01:16,720 –> 00:01:17,600
کند که
38
00:01:17,600 –> 00:01:19,920
آن مقدار را به آن اضافه
39
00:01:19,920 –> 00:01:21,920
می کند. من کد را می نویسم
40
00:01:21,920 –> 00:01:24,640
بنابراین بیایید بگوییم um a به عنوان یک float و این
41
00:01:24,640 –> 00:01:26,080
یک callball را برمی گرداند
42
00:01:26,080 –> 00:01:27,520
و آن کابل یک
43
00:01:27,520 –> 00:01:30,000
پارامتر یک پارامتر شناور را می گیرد و یک پارامتر float را برمی گرداند
44
00:01:30,000 –> 00:01:31,040
45
00:01:31,040 –> 00:01:33,439
46
00:01:33,439 –> 00:01:34,479
47
00:01:34,479 –> 00:01:38,240
. شناور قابل فراخوانی uh float
48
00:01:38,240 –> 00:01:41,280
که به حالت شناور برمی گردد، بنابراین می توانید ببینید که
49
00:01:41,280 –> 00:01:44,079
ما این ورودی دو شناور را می گیریم و
50
00:01:44,079 –> 00:01:46,320
آن را به ورودی تک شناور تبدیل می کنیم
51
00:01:46,320 –> 00:01:48,479
و روشی که می توانیم این را بنویسیم با
52
00:01:48,479 –> 00:01:50,720
داشتن یک تابع
53
00:01:50,720 –> 00:01:54,000
درونی در درون خود است که
54
00:01:54,000 –> 00:01:57,520
یک شناور می گیرد و یک float را برمی گرداند، بنابراین
55
00:01:57,520 –> 00:01:59,600
این همان امضای این ستون است
56
00:01:59,600 –> 00:02:02,159
در اینجا اوه، من دو نقطه من را دارم، دوباره آن را دریافت کردم
57
00:02:02,159 –> 00:02:03,200
58
00:02:03,200 –> 00:02:06,880
و این می تواند a و b را
59
00:02:06,880 –> 00:02:10,239
برگرداند و سپس جمع کننده enter را برگرداند
60
00:02:10,239 –> 00:02:12,800
و فرض کنید می خواستیم یک تابع add5 ایجاد
61
00:02:12,800 –> 00:02:14,720
کنیم. ما می توانیم پنج برابر را با جمع پنج برابر جمع
62
00:02:14,720 –> 00:02:15,680
63
00:02:15,680 –> 00:02:17,200
کنیم قرار است
64
00:02:17,200 –> 00:02:19,599
a را به مقدار پنج متصل
65
00:02:19,599 –> 00:02:21,760
کنیم، یک محفظه تابع جدید ایجاد کنیم
66
00:02:21,760 –> 00:02:23,680
که دسترسی مستقیم به
67
00:02:23,680 –> 00:02:26,480
این پنج در اینجا دارد و سپس میدانید هر
68
00:02:26,480 –> 00:02:27,920
پارامتری که به آن
69
00:02:27,920 –> 00:02:28,640
تابع
70
00:02:28,640 –> 00:02:30,720
جدید منتقل میشود، در اینجا اضافه میشود، بنابراین اگر این کار را انجام دهیم.
71
00:02:30,720 –> 00:02:32,319
و ما این فایل را
72
00:02:32,319 –> 00:02:34,879
که add5 می نامیم را با 10 مجدداً اجرا می کنیم، خواهید دید
73
00:02:34,879 –> 00:02:36,800
که 15 را برمی گردانیم و البته اگر از 10
74
00:02:36,800 –> 00:02:39,519
به عنوان شناور استفاده کنیم، 15 را به عنوان شناور دریافت می کنیم،
75
00:02:39,519 –> 00:02:41,519
بنابراین کاری که currying نامیده می شود انجام داده است.
76
00:02:41,519 –> 00:02:43,680
77
00:02:43,680 –> 00:02:45,840
اولین آرگومان برای
78
00:02:45,840 –> 00:02:46,800
اضافه کردن
79
00:02:46,800 –> 00:02:48,319
oh وجود دارد در واقع یک راه بسیار ساده تر
80
00:02:48,319 –> 00:02:49,519
برای نوشتن این به جای داشتن این
81
00:02:49,519 –> 00:02:50,560
تابع داخلی وجود دارد،
82
00:02:50,560 –> 00:02:52,000
ما در واقع می توانیم این را بازنویسی کنیم فقط با استفاده از
83
00:02:52,000 –> 00:02:54,800
یک لامبدا برگردانده b
84
00:02:54,800 –> 00:02:57,840
برای اضافه کردن یک b بنابراین
85
00:02:57,840 –> 00:02:59,760
این عبارت لامبدا مانند
86
00:02:59,760 –> 00:03:01,280
این کد در اینجا است.
87
00:03:01,280 –> 00:03:02,879
شاید خواندن این از منظر برنامه
88
00:03:02,879 –> 00:03:04,640
نویسی تابعی کمی آسان تر باشد
89
00:03:04,640 –> 00:03:06,080
و البته
90
00:03:06,080 –> 00:03:06,959
از لامبدا استفاده می
91
00:03:06,959 –> 00:03:08,959
کند، بنابراین شما
92
00:03:08,959 –> 00:03:10,640
برنامه نویسی کاربردی را می
93
00:03:10,640 –> 00:03:13,519
دانید اما بله، این
94
00:03:13,519 –> 00:03:16,239
دقیقاً مانند آن کار می کند، بنابراین اگر ما 5 را با 10 اضافه کنید،
95
00:03:16,239 –> 00:03:19,599
ما 15 می گیریم. اما ممکن است بگویید که
96
00:03:19,599 –> 00:03:20,080
97
00:03:20,080 –> 00:03:23,120
این صفحه اسپویلر uh را می دانید
98
00:03:23,120 –> 00:03:25,040
کمی مبهم است، ترجیح می دهم بتوانم
99
00:03:25,040 –> 00:03:26,480
این کار را به طور خودکار انجام دهم
100
00:03:26,480 –> 00:03:28,879
و خوشبختانه در پایتون
101
00:03:28,879 –> 00:03:31,120
تابعی وجود دارد ابزارهای func که
102
00:03:31,120 –> 00:03:33,519
این کار را برای شما