در این مطلب، ویدئو Immutable در مقابل اشیاء قابل تغییر در پایتون با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,089 –> 00:00:02,220
سلام، این دن است و در این ویدیو
2
00:00:02,220 –> 00:00:04,560
می خواهم در مورد تغییرناپذیری در پایتون صحبت کنم،
3
00:00:04,560 –> 00:00:06,839
بنابراین در این ویدیو می خواهم به
4
00:00:06,839 –> 00:00:09,630
شما نشان دهم که تغییرناپذیری به چه
5
00:00:09,630 –> 00:00:11,910
معناست وقتی یک شی غیرقابل تغییر است یا ما
6
00:00:11,910 –> 00:00:14,790
به یک شی به عنوان تغییرناپذیر اشاره می کنیم و سپس
7
00:00:14,790 –> 00:00:16,920
می خواهم در مورد ویژگیهای
8
00:00:16,920 –> 00:00:19,590
تغییرناپذیری در پایتون صحبت کنم، زیرا در
9
00:00:19,590 –> 00:00:22,529
واقع برخی از جنبههای آن وجود دارد که چندان
10
00:00:22,529 –> 00:00:23,880
شهودی نیستند، به خصوص
11
00:00:23,880 –> 00:00:25,410
اگر از پسزمینه زبانی متفاوتی
12
00:00:25,410 –> 00:00:28,529
میآیید و میخواهم آنها را پوشش
13
00:00:28,529 –> 00:00:30,480
دهم تا بدانید چه خبر است و
14
00:00:30,480 –> 00:00:32,668
بدانید که چگونه برای مدیریت این موقعیتها زمانی که
15
00:00:32,668 –> 00:00:34,530
در عمل با آنها روبرو میشوید، خوب است،
16
00:00:34,530 –> 00:00:36,660
بنابراین اجازه دهید شروع کنیم تا نشان
17
00:00:36,660 –> 00:00:39,840
دهیم که تغییرناپذیر یا تغییرناپذیری به چه معناست، من
18
00:00:39,840 –> 00:00:42,600
قصد دارم یک شیء تغییرپذیر و
19
00:00:42,600 –> 00:00:44,399
سپس یک شیء تغییرناپذیر ایجاد کنم و
20
00:00:44,399 –> 00:00:46,649
تفاوت را به شما نشان میدهم.
21
00:00:46,649 –> 00:00:48,629
شیء قابل تغییر به این معنی است که یک شی
22
00:00:48,629 –> 00:00:52,199
که می تواند بسیار تغییر یابد، به عنوان مثال
23
00:00:52,199 –> 00:00:56,640
می توان یک لیست ساده ایجاد کرد، بنابراین
24
00:00:56,640 –> 00:00:58,020
من می خواهم لیست ایجاد کنم و
25
00:00:58,020 –> 00:01:00,270
مقداری را در آن قرار دهم یا در واقع
26
00:01:00,270 –> 00:01:05,790
اجازه دهید بریم. با یک B و C و با یک
27
00:01:05,790 –> 00:01:08,100
شیء قابل تغییر می توانم آزادانه این
28
00:01:08,100 –> 00:01:11,130
شی را تغییر دهم، بنابراین می توانم به اینجا وارد شوم و می توانم بگویم
29
00:01:11,130 –> 00:01:14,610
اجازه دهید تغییر دهیم، اجازه دهید مقدار را در
30
00:01:14,610 –> 00:01:17,040
شاخص 1 تغییر دهیم و وقتی به شیء قابل تغییر نگاه می کنیم،
31
00:01:17,040 –> 00:01:20,659
می توانید اینجا ببینید که این
32
00:01:20,659 –> 00:01:24,060
جهش بوده است. اعمال شد، بنابراین ما
33
00:01:24,060 –> 00:01:27,180
محتوای این شی را اکنون با یک
34
00:01:27,180 –> 00:01:29,670
شیء تغییرناپذیر تغییر دادیم، نمیتوانیم این کار را انجام دهیم که
35
00:01:29,670 –> 00:01:31,920
مثالی برای یک شیء تغییرناپذیر
36
00:01:31,920 –> 00:01:34,320
یک تاپل در اینجا خواهد بود، بنابراین من میخواهم یک
37
00:01:34,320 –> 00:01:37,470
تاپل با همان محتویات ایجاد کنم و حالا
38
00:01:37,470 –> 00:01:38,720
وقتی سعی میکنیم همان
39
00:01:38,720 –> 00:01:41,810
تغییری را اعمال کنید که یک خطای نوع دریافت میکنیم.
40
00:01:41,810 –> 00:01:44,399
41
00:01:44,399 –> 00:01:45,930
42
00:01:45,930 –> 00:01:47,729
43
00:01:47,729 –> 00:01:50,759
44
00:01:50,759 –> 00:01:53,579
45
00:01:53,579 –> 00:01:55,920
46
00:01:55,920 –> 00:01:58,740
شی mutable یک لیست مانند
47
00:01:58,740 –> 00:02:02,969
قبل است که می تواند یک فرهنگ لغت نیز باشد، بنابراین ما
48
00:02:02,969 –> 00:02:05,670
می توانیم آنها را بعد از این واقعیت تغییر دهیم یا
49
00:02:05,670 –> 00:02:09,508
می تواند مجموعه ای باشد که همه آنها
50
00:02:09,508 –> 00:02:11,550
قابل تغییر هستند، سپس اگر یک کلاس سفارشی دارید
51
00:02:11,550 –> 00:02:13,230
که به طور پیش فرض نیز قابل تغییر است و می توانید
52
00:02:13,230 –> 00:02:13,550
فقط
53
00:02:13,550 –> 00:02:16,040
در آ حالا ویژگیهای کلاس را تغییر دهید،
54
00:02:16,040 –> 00:02:18,020
چه مثالهایی برای اشیایی
55
00:02:18,020 –> 00:02:20,870
که تغییرناپذیر هستند و نمیتوان آنها را آزادانه
56
00:02:20,870 –> 00:02:23,270
در پایتون تغییر داد، یک مثال معمولی
57
00:02:23,270 –> 00:02:26,930
یک رشته است، بنابراین رشته 1 2 3 ما
58
00:02:26,930 –> 00:02:29,950
در واقع نمیتوانیم به آن دست پیدا کنیم و
59
00:02:29,950 –> 00:02:32,420
کاراکترهای آن را تغییر دهیم. رشته بنابراین
60
00:02:32,420 –> 00:02:35,900
غیرقابل تغییر است، مثال دیگری می تواند
61
00:02:35,900 –> 00:02:38,240
تاپلی باشد که من به شما نشان دادم یا
62
00:02:38,240 –> 00:02:40,700
مثال دیگری می تواند یک مجموعه منجمد باشد، بنابراین من می
63
00:02:40,700 –> 00:02:42,800
خواهم یک مجموعه منجمد را در اینجا ایجاد کنم و
64
00:02:42,800 –> 00:02:45,140
مجموعه منجمد به خوبی منجمد شده است، بنابراین ما
65
00:02:45,140 –> 00:02:47,570
نمی توانیم واقعاً آن را تغییر دهیم. اینها
66
00:02:47,570 –> 00:02:50,510
نمونه هایی از اشیاء تغییرناپذیر یا
67
00:02:50,510 –> 00:02:55,100
مقادیر تغییرناپذیر در پایتون هستند، اکنون این
68
00:02:55,100 –> 00:02:57,050
به نظر کاملاً ساده به نظر می رسد، درست است
69
00:02:57,050 –> 00:02:59,510
اگر یک شیء قابل تغییر دارید، می توانید
70
00:02:59,510 –> 00:03:02,300
آزادانه آن را با یک شیء تغییرناپذیر تغییر دهید، اما
71
00:03:02,300 –> 00:03:04,310
به نظر می
72
00:03:04,310 –> 00:03:06,620
رسد تعریف کاملاً واضحی نیست. من
73
00:03:06,620 –> 00:03:09,110
می خواهم کمی عمیق تر به برخی از
74
00:03:09,110 –> 00:03:11,540
موارد عجیب و غریبی که ممکن است
75
00:03:11,540 –> 00:03:13,160
در مورد اشیاء تغییرناپذیر در پایتون با آنها برخورد کنید،
76
00:03:13,160 –> 00:03:15,650
بروم، اما قبل از انجام این کار اجازه دهید در
77
00:03:15,650 –> 00:03:17,959
مورد اینکه چه زمانی می خواهید از mutable استفاده کنید و
78
00:03:17,959 –> 00:03:20,090
چه زمانی می خواهید از ما استفاده کنید صحبت کنیم. اشیاء تغییرناپذیر
79
00:03:20,090 –> 00:03:21,260
و چیزهایی که آنها برای آنها خوب هستند،
80
00:03:21,260 –> 00:03:23,060
بنابراین نکته مهم در مورد یک
81
00:03:23,060 –> 00:03:26,060
شیء تغییرناپذیر این است که مهر و موم
82
00:03:26,060 –> 00:03:28,190
شده است، پس از ایجاد آن واقعاً نمی توان آن را تغییر
83
00:03:28,190 –> 00:03:30,830
داد و
84
00:03:30,830 –> 00:03:33,440
اگر می خواهید کدی ساده تر بنویسید، می تواند یک ویژگی واقعا مفید باشد.
85
00:03:33,440 –> 00:03:35,750
به این اشکال اساساً
86
00:03:35,750 –> 00:03:38,930
وقتی یک شیء تغییرناپذیر ایجاد
87
00:03:38,930 –> 00:03:41,570
میکنید، میدانید که مقدار آن چقدر خواهد بود،
88
00:03:41,570 –> 00:03:43,090
زیرا مقدار آن
89
00:03:43,090 –> 00:03:45,770
پس از ایجاد ثابت خواهد بود، بنابراین
90
00:03:45,770 –> 00:03:47,270
وقتی در حال اشکالزدایی کدی هستید که با
91
00:03:47,270 –> 00:03:50,870
اشیاء تغییرناپذیر کار میکند، بسیار آسانتر است.
92
00:03:50,870 –> 00:03:53,239
93
00:03:53,239 –> 00:03:56,090
94
00:03:56,090 –> 00:03:57,170
زمانی که با
95
00:03:57,170 –> 00:03:59,630
موازی سازی در برنامه های خود کار می کنید، وضعیت فعلی یک شی را دریابید و تغییرناپذیری نیز مفید است زیرا در این
96
00:03:59,630 –> 00:04:01,070
صورت تقریباً می توانید تضمین کنید که
97
00:04:01,070 –> 00:04:03,170
رشته دیگری
98
00:04:03,170 –> 00:04:05,780
به داده های شما نمی رسد و در صورت انجام آن تغییر
99
00:04:05,780 –> 00:04:08,150
نمی کند. اکنون انتظار دارید که
100
00:04:08,150 –> 00:04:10,250
نوشتن همه کدهای خود به گونه ای
101
00:04:10,250 –> 00:04:11,930
که آن را حداقل در پایتون کاملاً تغییرناپذیر کند بسیار سخت است
102
00:04:11,930 –> 00:04:13,910
و من قصد دارم در عرض یک دقیقه به شما نشان دهم که چرا می خواهید
103
00:04:13,910 –> 00:04:16,880
، اما ایده کلی زمانی که
104
00:04:16,880 –> 00:04:18,980
می خواهید تغییرناپذیری pply یا می خواهید
105
00:04:18,980 –> 00:04:21,048
از اشیای تغییرناپذیر استفاده کنید، زمانی است که
106
00:04:21,048 –> 00:04:22,789
وقتی می خواهید اشیایی را مهر و موم کنید، می
107
00:04:22,789 –> 00:04:24,800
خواهید تضمین کنید که ارزش و
108
00:04:24,800 –> 00:04:26,990
محتوای آنها
109
00:04:26,990 –> 00:04:30,110
اکنون با اشیای قابل تغییر تغییر نمی
110
00:04:30,110 –> 00:04:33,830
کند، اگر نیاز به تغییر یک شی یا یک شی داشته باشید همیشه از آنها استفاده خواهید کرد.
111
00:04:33,830 –> 00:04:36,229
Container همانطور که به
112
00:04:36,229 –> 00:04:38,120
سمت راست پیش می روید، فرض کنید الگوریتمی نوشته اید
113
00:04:38,120 –> 00:04:42,289
که دسته ای از نام ها را در یک لیست جمع آوری می کند،
114
00:04:42,289 –> 00:04:45,199
پس بدیهی است که باید
115
00:04:45,199 –> 00:04:47,630
این نام ها را به لیست اضافه کنید،
116
00:04:47,630 –> 00:04:49,400
منظورم این است که می توانید آن الگوریتم را
117
00:04:49,400 –> 00:04:52,160
به گونه ای پیاده سازی کنید که به جای تغییر دادن
118
00:04:52,160 –> 00:04:54,020
فهرست با افزودن یک عنصر،
119
00:04:54,020 –> 00:04:56,000
در واقع یک لیست کاملاً جدید
120
00:04:56,000 –> 00:04:59,150
از ابتدا ایجاد میکند و فقط شی فهرست را بازنویسی میکند
121
00:04:59,150 –> 00:05:01,970
که از منظر توانایی اشکالزدایی میتواند چیز خ