در این مطلب، ویدئو برنامه نویسی شی گرا با پایتون – دوره کامل برای مبتدیان با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 2:12:35
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:00,080 –> 00:00:01,920
درک برنامه نویسی شی گرا در این دوره برای توسعه دهندگان نرم افزار مهم است که
2
00:00:01,920 –> 00:00:03,760
3
00:00:03,760 –> 00:00:04,880
4
00:00:04,880 –> 00:00:06,960
جیم از
5
00:00:06,960 –> 00:00:08,559
برنامه نویسی شی گرا به شما همه چیز را در مورد
6
00:00:08,559 –> 00:00:10,880
برنامه نویسی شی گرا در برنامه
7
00:00:10,880 –> 00:00:12,639
نویسی شی گرا
8
00:00:12,639 –> 00:00:14,719
9
00:00:14,719 –> 00:00:17,279
پایتون می آموزد. و همچنین به عنوان
10
00:00:17,279 –> 00:00:19,920
اولین شغل خود به عنوان یک مهندس نرم افزار
11
00:00:19,920 –> 00:00:21,039
12
00:00:21,039 –> 00:00:23,039
به همه خوش آمدید به
13
00:00:23,039 –> 00:00:25,599
دوره برنامه نویسی شی گرا پایتون اکنون
14
00:00:25,599 –> 00:00:27,279
اگر برای درک
15
00:00:27,279 –> 00:00:29,279
مفاهیم برنامه نویسی شی گرا
16
00:00:29,279 –> 00:00:31,439
در گذشته تلاش می کنید، کاملاً خوب
17
00:00:31,439 –> 00:00:33,200
هستید و در دستان خوبی هستید زیرا در
18
00:00:33,200 –> 00:00:36,239
این زمینه البته میخواهم مطمئن شوم
19
00:00:36,239 –> 00:00:37,920
که این آخرین آموزشی است که
20
00:00:37,920 –> 00:00:41,120
در مورد کلاسها و
21
00:00:41,120 –> 00:00:43,840
مفاهیم پیچیدهای که با برنامهنویسی شی
22
00:00:43,840 –> 00:00:46,160
گرا ارائه میشود تماشا خواهید کرد و ما میخواهیم
23
00:00:46,160 –> 00:00:48,559
این کار را با توسعه یک برنامه پایتون واقعی
24
00:00:48,559 –> 00:00:51,039
انجام دهیم.
25
00:00:51,039 –> 00:00:53,920
نوشتن بسیار جالب است و ما
26
00:00:53,920 –> 00:00:56,879
قدم به قدم به پیچیدگی آن اضافه خواهیم کرد و در
27
00:00:56,879 –> 00:00:58,559
طول راه همه چیزهایی را
28
00:00:58,559 –> 00:01:00,239
که باید بدانیم درک خواهیم کرد. در
29
00:01:00,239 –> 00:01:02,320
حال حاضر برنامه نویسی شی گرا
30
00:01:02,320 –> 00:01:04,000
برای این دوره الزاماتی وجود دارد،
31
00:01:04,000 –> 00:01:06,320
من از همه انتظار
32
00:01:06,320 –> 00:01:08,479
دارم که حداقل در مورد متغیرهای توابع در
33
00:01:08,479 –> 00:01:11,040
صورت دستورات و
34
00:01:11,040 –> 00:01:13,520
همچنین حلقه ها بدانند و اگر آن چیزها را
35
00:01:13,520 –> 00:01:15,600
از زبان های برنامه نویسی دیگر می دانید، پس
36
00:01:15,600 –> 00:01:17,759
این نیز می باشد. خوب، پس با این
37
00:01:17,759 –> 00:01:20,400
گفته، بیایید اکنون شروع کنیم تا توضیح دهیم
38
00:01:20,400 –> 00:01:22,080
که چرا باید برنامه های شی گرا بنویسید،
39
00:01:22,080 –> 00:01:24,400
من مفاهیم
40
00:01:24,400 –> 00:01:26,560
مبتنی بر یک سیستم مدیریت فروشگاه را توضیح خواهم داد
41
00:01:26,560 –> 00:01:28,880
که با هم شروع به توسعه خواهیم کرد، بنابراین
42
00:01:28,880 –> 00:01:30,720
شروع به فکر کردن در مورد چگونگی برداشتن
43
00:01:30,720 –> 00:01:33,040
اولین گام های خود با چنین برنامه ای می کنیم. برنامهای که میتوانیم
44
00:01:33,040 –> 00:01:34,720
ابتدا به دنبال ردیابی پس از
45
00:01:34,720 –> 00:01:36,640
اقلامی که در حال حاضر در فروشگاه خود داریم فکر کنیم،
46
00:01:36,640 –> 00:01:39,200
بنابراین یکی از راههایی که میتوانیم شروع کنیم،
47
00:01:39,200 –> 00:01:41,280
میتوانیم آن چهار متغیر را ایجاد کنیم تا
48
00:01:41,280 –> 00:01:43,840
بعد از آیتمهایمان ردیابی شروع شود، بنابراین همانطور که
49
00:01:43,840 –> 00:01:46,079
میبینید اولین مورد متغیر ما
50
00:01:46,079 –> 00:01:48,079
برابر است. به تلفن و سپس
51
00:01:48,079 –> 00:01:49,840
سه متغیر دیگر داریم که
52
00:01:49,840 –> 00:01:51,759
عمداً با
53
00:01:51,759 –> 00:01:54,320
پیشوند مورد یک شروع می شوند تا بتوانیم
54
00:01:54,320 –> 00:01:56,560
آن چهار متغیر را توصیف کنیم.
55
00:01:56,560 –> 00:01:58,799
با پیروی از
56
00:01:58,799 –> 00:02:00,960
قراردادهای نامگذاری صحیح به یکدیگر مرتبط هستند، اکنون ممکن است فکر کنید
57
00:02:00,960 –> 00:02:02,960
که آن چهار متغیر
58
00:02:02,960 –> 00:02:05,280
فقط به این دلیل به یکدیگر مرتبط هستند که از
59
00:02:05,280 –> 00:02:08,239
پیشوند یکسانی برای پایتون استفاده میکند، آنها
60
00:02:08,239 –> 00:02:10,560
فقط چهار متغیر با انواع دادههای
61
00:02:10,560 –> 00:02:13,760
مختلف هستند، بنابراین اگر بخواهیم
62
00:02:13,760 –> 00:02:16,239
نوع هر یک از آن چهار متغیر را چاپ کنید، اکنون
63
00:02:16,239 –> 00:02:19,040
انواع آنها را بدون
64
00:02:19,040 –> 00:02:21,920
تعجب دریافت می کنیم، رشته
65
00:02:21,920 –> 00:02:24,400
و عدد صحیح را برای مقدار قیمت و قیمت
66
00:02:24,400 –> 00:02:26,879
کل دریافت می کنیم، اکنون می خواهم روی آن
67
00:02:26,879 –> 00:02:29,200
خروجی های خاص تمرکز کنم، زیرا همانطور
68
00:02:29,200 –> 00:02:31,680
که می توانید برای هر یک از آنها ببینید. انواعی که
69
00:02:31,680 –> 00:02:35,200
اکنون کلمه کلیدی کلاس را نیز می بینیم به این
70
00:02:35,200 –> 00:02:39,120
معنی است که آن نوع داده ها در واقع
71
00:02:39,120 –> 00:02:43,360
نمونه هایی از رشته ها یا اعداد صحیح هستند، بنابراین در
72
00:02:43,360 –> 00:02:45,760
زبان برنامه نویسی پایتون هر
73
00:02:45,760 –> 00:02:47,920
نوع داده یک شی است که
74
00:02:47,920 –> 00:02:51,519
قبلاً توسط برخی کلاس ها و
75
00:02:51,519 –> 00:02:54,400
برای متغیر item1 که قبلاً نمونه سازی شده است.
76
00:02:54,400 –> 00:02:57,440
از یک نوع رشته ای از کلاس نمونه برداری شده است
77
00:02:57,440 –> 00:02:59,440
و برای مقدار قیمت و قیمت
78
00:02:59,440 –> 00:03:02,239
کل آن ها
79
00:03:02,239 –> 00:03:04,959
از کلاسی که int به
80
00:03:04,959 –> 00:03:07,840
معنای teger بنابراین
81
00:03:07,840 –> 00:03:10,239
اگر میتوانستیم به پایتون بگوییم که
82
00:03:10,239 –> 00:03:12,720
میخواهیم نوع دادهای از خودمان بسازیم میتوانست بهتر باشد، این
83
00:03:12,720 –> 00:03:14,640
به ما امکان میدهد تا کدی بنویسیم که
84
00:03:14,640 –> 00:03:17,840
در آینده در صورت نیاز به راحتی بتوانیم از آن استفاده کنیم، اکنون
85
00:03:17,840 –> 00:03:20,000
هر نمونه میتواند ویژگیهایی برای
86
00:03:20,000 –> 00:03:22,400
توصیف مرتبط داشته باشد. اطلاعاتی در مورد آن
87
00:03:22,400 –> 00:03:24,480
و ما میتوانیم در مورد حداقل چند
88
00:03:24,480 –> 00:03:26,959
نامزد خوب برای ویژگیهایی که
89
00:03:26,959 –> 00:03:30,400
میتوانیم برای نوع داده کالای خود مانند
90
00:03:30,400 –> 00:03:31,200
91
00:03:31,200 –> 00:03:34,080
قیمت یا مقدار آن داشته باشیم، فکر کنیم، بنابراین بیایید ادامه دهیم
92
00:03:34,080 –> 00:03:36,319
و شروع به ایجاد اولین کلاس خود کنیم،
93
00:03:36,319 –> 00:03:38,560
بنابراین من همه چیز را از اینجا پاک
94
00:03:38,560 –> 00:03:40,400
میکنم و ما با آن ادامه خواهم داد،
95
00:03:40,400 –> 00:03:42,560
بنابراین به دو قسمت تقسیم میشود،
96
00:03:42,560 –> 00:03:44,720
اولی ایجاد کلاس و
97
00:03:44,720 –> 00:03:47,280
قسمت دوم بخشی است
98
00:03:47,280 –> 00:03:49,920
که اکنون وقتی میگویم ایجاد یک نمونه، برخی از اشیاء این کلاس را نمونهسازی میکنم.
99
00:03:49,920 –> 00:03:52,239
100
00:03:52,239 –> 00:03:54,720
یا ایجاد یک شی اساساً
101
00:03:54,720 –> 00:03:56,799
منظور من همان چیزی است، بنابراین ممکن است
102
00:03:56,799 –> 00:03:59,280
بشنوید که یکی از آنها را
103
00:03:59,280 –> 00:04:01,920
میگویم، پس بیایید ادامه دهیم و کلاس را بگوییم و
104
00:04:01,920 –> 00:04:04,159
سپس باید
105
00:04:04,159 –> 00:04:06,080
نام کلاسی را که میخواهید ایجاد کنید دنبال کنید.
106
00:04:06,080 –> 00:04:08,400
مایلیم نام مورد را به آن بدهم
107
00:04:08,400 –> 00:04:10,640
و سپس در داخل این کلاس در
108
00:04:10,640 –> 00:04:13,280
آینده کدی را می نویسیم
109
00:04:13,280 –> 00:04:15,439
که
110
00:04:15,439 –> 00:04:17,839
برای ما بسیار مفید و مفید خواهد بود بنابراین
111
00:04:17,839 –> 00:04:19,839
هر بار که دوست داریم مشابه آن را بگیریم خودمان را تکرار نکنیم.
112
00:04:19,839 –> 00:04:22,400
اقدامات اما فعلاً به
113
00:04:22,400 –> 00:04:24,560
طور موقت میخواهم بگویم که اینجا بگذرد،
114
00:04:24,560 –> 00:04:26,800
بنابراین هیچ خطایی در داخل تعریف کلاس دریافت نخواهیم کرد،
115
00:04:26,800 –> 00:04:28,960
بنابراین اکنون
116
00:04:28,960 –> 00:04:31,120
که کلاس خود را
117
00:04:31,120 –> 00:04:32,960
ایجاد کردهایم، اجازه داریم چند نمونه از این کلاس ایجاد کنیم،
118
00:04:32,960 –> 00:04:34,960
پس بیایید ادامه دهیم و بگوییم که
119
00:04:34,960 –> 00:04:38,639
مورد یک برابر با آیتم است و آن
120
00:04:38,639 –> 00:04:41,120
عمل معادل ایجاد یک
121
00:04:41,120 –> 00:04:43,600
نمونه از یک کلاس است، درست مانند زمانی که می خواهید
122
00:04:43,600 –> 00:04:46,080
یک رشته تصادفی
123
00:04:46,080 –> 00:04:48,160
ایجاد کنید، چیزی شبیه به زیر می گویید که
124
00:04:48,160 –> 00:04:51,280
این نیز معادل این یکی است،
125
00:04:51,280 –> 00:04:53,280
بنابراین بسیار مهم است. برای
126
00:04:53,280 –> 00:04:56,080
اینکه بفهمم کلاسها در پایتون چگونه کار میکنند،
127
00:04:56,080 –> 00:04:57,840
بنابراین این خط را حذف
128
00:04:57,840 –> 00:05:00,720
میکنم زیرا این فقط یک مثال بود و
129
00:05:00,720 –> 00:05:02,960
اکنون گفتم که ما اجازه داریم
130
00:05:02,960 –> 00:05:05,759
برخی ویژگیها را به نمونههای یک کلاس اختصاص
131
00:05:05,759 –> 00:05:08,160
دهیم، بنابراین بیایید ادامه دهیم و شروع به ایجاد کنیم.
132
00:05:08,160 –> 00:05:10,639
ویژگی ها و
133
00:05:10,639 –> 00:05:13,919
با استفاده از علامت نقطه درست بعد از
134
00:05:13,919 –> 00:05:16,320
نمونه یک کلاس قابل دستیابی خواهد بود و در اینجا می توانید بگویید
135
00:05:16,320 –> 00:05:17,919
که می خواهید یک ویژگی
136
00:05:17,919 –> 00:05:21,199
مانند نامی به آن بدهید که برابر با phone
137
00:05:21,199 –> 00:05:24,479
و item1.price می تواند برابر با
138
00:05:24,479 –> 00:05:28,880
100 باشد و مقدار مورد یک نقطه می تواند
139
00:05:28,880 –> 00:05:29,919
برابر با
140
00:05:29,919 –> 00:05:32,720
پنج باشد، به عنوان مثال اکنون در آن مرحله
141
00:05:32,720 –> 00:05:34,479
ممکن است از خود بپرسید که
142
00:05:34,479 –> 00:05:36,560
تفاوت بین متغیرهای تصادفی
143
00:05:36,560 –> 00:05:39,120
که ما با آن چهار خط ایجاد کرده
144
00:05:39,120 –> 00:05:40,720
ایم چیست، در اینجا ما در واقع
145
00:05:40,720 –> 00:05:43,440
بین آن چهار خط رابطه داریم
146
00:05:43,440 –> 00:05:45,680
زیرا هر یک از آنها ویژگیها
147
00:05:45,680 –> 00:05:48,479
به یک نمونه از کلاس اختصاص داده میشوند
148
00:05:48,479 –> 00:05:50,800
و من میتوانم پیشنمایش آن را با ادامه دادن
149
00:05:50,800 –> 00:05:54,560
و سعی در چاپ انواع آیتم
150
00:05:54,560 –> 00:05:57,280
یک و همچنین انواع
151
00:05:57,280 –> 00:05:58,960
ویژگیهای
152
00:05:58,960 –> 00:06:01,520
نام قیمت و مقدار در حال حاضر با نام
153
00:06:01,520 –> 00:06:03,120
قیمت و مقدار، چاپ کنم.
154
00:06:03,120 –> 00:06:05,520
جای تعجب نیست زیرا ما
155
00:06:05,520 –> 00:06:08,240
ویژگی های نوع رشته ای را به
156
00:06:08,240 –> 00:06:11,440
شی مورد اختصاص دادیم، اما اگر قرار بود آن را چاپ کنیم
157
00:06:11,440 –> 00:06:13,600
، اگر قرار بود این برنامه را اجرا کنم، نتیجه را بررسی کنید،
158
00:06:13,600 –> 00:06:16,720
بنابراین می توانید ببینید که اکنون ما
159
00:06:16,720 –> 00:06:19,520
یک نوع داده از آیتم را در اینجا داشته باشید و
160
00:06:19,520 –> 00:06:21,199
این تفاوت بزرگی است بین آنچه
161
00:06:21,199 –> 00:06:23,120
قبلا دیدهایم و چیزی که
162
00:06:23,120 –> 00:06:25,520
به تازگی ایجاد کردهایم، بنابراین اکنون
163
00:06:25,520 –> 00:06:27,199
میفهمیم که چگونه میتوانیم انواع دادههای خود را ایجاد کنیم،
164
00:06:27,199 –> 00:06:29,440
حالا بیایید جلو برویم و
165
00:06:29,440 –> 00:06:32,160
ببینیم بقیه موارد چیست. مزایای استفاده از
166
00:06:32,160 –> 00:06:34,400
برنامه نویسی شی گرا خوب است، بنابراین
167
00:06:34,400 –> 00:06:36,400
تا به حال متوجه شده بودیم که چگونه می توان
168
00:06:36,400 –> 00:06:39,199
ویژگی ها را به نمونه ها اختصاص داد، همچنین باید
169
00:06:39,199 –> 00:06:41,280
بدانیم که چگونه می توانیم برخی از متدها را ایجاد کنیم
170
00:06:41,280 –> 00:06:43,840
و آنها را روی
171
00:06:43,840 –> 00:06:46,000
نمونه های خود اجرا کنیم، اگر
172
00:06:46,000 –> 00:06:48,800
کلاس داخلی رشته را به عنوان مثال در نظر بگیریم.
173
00:06:48,800 –> 00:06:50,720
سپس میدانید که ما متدهایی
174
00:06:50,720 –> 00:06:52,800
داریم که میتوانیم برای
175
00:06:52,800 –> 00:06:55,599
هر یک از رشتههای خود پیش برویم و اجرا کنیم و برای این مثال
176
00:06:55,599 –> 00:06:57,840
میتوانید ببینید که من نمونهای از
177
00:06:57,840 –> 00:07:00,880
رشتهای را میگیرم که نام آن را random str گذاشتهام و
178
00:07:00,880 –> 00:07:02,720
سپس در خط بعدی جلو میروم و
179
00:07:02,720 –> 00:07:04,880
متد بالا را اجرا کنید که اگر به یاد داشته باشید
180
00:07:04,880 –> 00:07:07,360
مسئول گرفتن تمام حروف
181
00:07:07,360 –> 00:07:09,840
و تبدیل آنها به حروف بزرگ است، اکنون
182
00:07:09,840 –> 00:07:11,759
بزرگترین سوال اینجاست که چگونه می توانیم
183
00:07:11,759 –> 00:07:14,800
جلو برویم و روش هایی را طراحی
184
00:07:14,800 –> 00:07:16,880
کنیم که اجازه exe را دارند. در
185
00:07:16,880 –> 00:07:19,840
مورد نمونههای ما خوب جواب در داخل کلاس ما است،
186
00:07:19,840 –> 00:07:23,280
بنابراین ما میتوانیم به داخل کلاس خود برویم
187
00:07:23,280 –> 00:07:25,199
و چند متد را بنویسیم که
188
00:07:25,199 –> 00:07:28,720
از نمونههای ما قابل دسترسی باشد، بنابراین میتوانیم
189
00:07:28,720 –> 00:07:31,599
ادامه دهیم و بگوییم def
190
00:07:31,599 –> 00:07:34,400
و نام روش خود را اکنون نامزد خوبی برای یک متد بگذاریم.
191
00:07:34,400 –> 00:07:36,080
که اکنون میخواهیم
192
00:07:36,080 –> 00:07:39,759
ایجاد کنیم، در واقع محاسبه قیمت کل است،
193
00:07:39,759 –> 00:07:42,000
زیرا همانطور که میدانیم، میتوانست
194
00:07:42,000 –> 00:07:43,759
195
00:07:43,759 –> 00:07:45,840
روشی داشته باشیم که پیش برویم و
196
00:07:45,840 –> 00:07:49,639
نتیجه را با ضرب item1.price در
197
00:07:49,639 –> 00:07:52,400
item1.quantity محاسبه کنیم تا بتوانیم به نتیجه برسیم.
198
00:07:52,400 –> 00:07:54,879
قیمت کل برای آن مورد خاص اکنون قبل از اینکه
199
00:07:54,879 –> 00:07:57,360
به جلو برویم و این تابع را کامل
200
00:07:57,360 –> 00:07:59,199
کنیم، میخواهم یک
201
00:07:59,199 –> 00:08:01,919
نمونه دیگر از این مورد را با حذف
202
00:08:01,919 –> 00:08:03,680
آن دو خط ایجاد کنم، زیرا ما
203
00:08:03,680 –> 00:08:05,599
مثال را فهمیدیم، بنابراین من فقط آنها را به تغییر میدهم
204
00:08:05,599 –> 00:08:07,599
مورد 2
205
00:08:07,599 –> 00:08:10,080
مانند آن است و من می خواهم از چیزی
206
00:08:10,080 –> 00:08:10,960
مانند
207
00:08:10,960 –> 00:08:13,919
لپ تاپ استفاده کنم و قیمت را به 1000 تغییر دهم و
208
00:08:13,919 –> 00:08:16,879
بگویم که ما سه مورد از آنها را داریم فقط
209
00:08:16,879 –> 00:08:18,479
یک یادداشت جانبی سریع وقتی می شنوید که
210
00:08:18,479 –> 00:08:21,199
من روش هایی را می گویم پس اساساً منظور من
211
00:08:21,199 –> 00:08:23,520
عملکردهایی است که یک در داخل کلاسها قرار
212
00:08:23,520 –> 00:08:25,759
213
00:08:25,759 –> 00:08:27,360
میگیرید زیرا از نظر پایتون یا در هر زبان برنامهنویسی وقتی
214
00:08:27,360 –> 00:08:30,720
تعاریف ایزولهای با این کلمه کلیدی داشته
215
00:08:30,720 –> 00:08:32,559
باشید، آنها را توابع نامیده میشوند،
216
00:08:32,559 –> 00:08:34,399
اما وقتی جلوتر میروید
217
00:08:34,399 –> 00:08:37,279
و آن توابع را در داخل کلاسها ایجاد میکنید،
218
00:08:37,279 –> 00:08:39,919
آنها متد نامیده میشوند، بنابراین
219
00:08:39,919 –> 00:08:41,679
این مهم است. نکته ای را که باید
220
00:08:41,679 –> 00:08:43,440
درک کنید، زیرا من از این پس
221
00:08:43,440 –> 00:08:46,080
آن متدها را خوب می نامم، بنابراین اگر بخواهم
222
00:08:46,080 –> 00:08:48,560
با باز کردن و
223
00:08:48,560 –> 00:08:50,640
بستن آن پرانتزها ادامه دهم،
224
00:08:50,640 –> 00:08:53,040
یک پارامتر
225
00:08:53,040 –> 00:08:55,680
ایجاد می شود که پایتون می خواهد
226
00:08:55,680 –> 00:08:57,839
عمداً آن را دریافت کنیم. دلیل
227
00:08:57,839 –> 00:08:59,360
اینکه این اتفاق میافتد
228
00:08:59,360 –> 00:09:00,480
پایتون
229
00:09:00,480 –> 00:09:03,600
خود شی را به عنوان آرگومان اول ارسال میکند
230
00:09:03,600 –> 00:09:06,160
زمانی که شما جلو میروید و
231
00:09:06,160 –> 00:09:10,080
اکنون آن متدها را فراخوانی میکنید، اگر قرار بود به اینجا بروم
232
00:09:10,080 –> 00:09:14,240
و بگویم آیتم 1 نقطه قیمت کل را محاسبه
233
00:09:14,240 –> 00:09:16,640
کنید، عملی که اکنون انجام میدهیم
234
00:09:16,640 –> 00:09:18,560
این متد را فراخوانی میکند، اما زمانی که شما ادامه دهید
235
00:09:18,560 –> 00:09:21,839
و یک متد را از یک نمونه فراخوانی کنید،
236
00:09:21,839 –> 00:09:25,600
سپس پایتون هر بار خود شیء را به
237
00:09:25,600 –> 00:09:28,399
عنوان آرگومان اول ارسال می کند، به
238
00:09:28,399 –> 00:09:30,880
همین دلیل است که ما اجازه نداریم c متدهای reate
239
00:09:30,880 –> 00:09:33,600
که هرگز پارامترها را دریافت نخواهند کرد اکنون
240
00:09:33,600 –> 00:09:36,160
این را خواهید دید اگر قرار بود
241
00:09:36,160 –> 00:09:38,800
اولین پارامتر را حذف کنم و چیزی مانند
242
00:09:38,800 –> 00:09:42,480
pass now بگویم اگر
243
00:09:42,480 –> 00:09:44,560
اکنون این برنامه را اجرا کنم، سپس خواهید
244
00:09:44,560 –> 00:09:47,839
دید خطای نوع محاسبه قیمت کل
245
00:09:47,839 –> 00:09:51,440
0 آرگومان موقعیتی می گیرد اما یکی
246
00:09:51,440 –> 00:09:53,920
داده شد به عبارت ساده چیزی که این
247
00:09:53,920 –> 00:09:57,120
استثنا می گوید این است که پایتون سعی می
248
00:09:57,120 –> 00:09:59,600
کند یک آرگومان را منتقل کند و شما
249
00:09:59,600 –> 00:10:01,839
هیچ پارامتری را دریافت نمی کنید بنابراین بسیار
250
00:10:01,839 –> 00:10:04,640
مشکل ساز است و به همین دلیل است که همیشه
251
00:10:04,640 –> 00:10:07,040
باید حداقل یک پارامتر را
252
00:10:07,040 –> 00:10:08,320
هنگام ادامه دادن و ایجاد کردن دریافت کنید.
253
00:10:08,320 –> 00:10:11,760
روش های شما در حال حاضر از آنجایی که ما همیشه این پارامتر را دریافت می کنیم،
254
00:10:11,760 –> 00:10:14,079
پس این فقط یک
255
00:10:14,079 –> 00:10:17,040
رویکرد رایج است که این خود را صدا کنیم،
256
00:10:17,040 –> 00:10:19,279
اگر قرار بود آن را چیزی شبیه به پارامتر خود
257
00:10:19,279 –> 00:10:22,240
بنامم یا چیز دیگری نمی دانم، اما شما هرگز نمی خواهید با معمولی مشکلی ایجاد کنید اشکالی ندارد.
258
00:10:22,240 –> 00:10:24,320
259
00:10:24,320 –> 00:10:26,399
کنوانسیونها در میان توسعهدهندگان مختلف پایتون
260
00:10:26,399 –> 00:10:28,640
، به همین دلیل است که مطمئن شوید
261
00:10:28,640 –> 00:10:32,399
هر بار آن را بهعنوان خود رها میکنید،
262
00:10:32,399 –> 00:10:35,120
اگر
263
00:10:35,120 –> 00:10:36,959
میخواهم ادامه دهم و این برنامه را اجرا کنم، خواهید دید
264
00:10:36,959 –> 00:10:38,480
که ما نمیرویم برای دریافت هر گونه
265
00:10:38,480 –> 00:10:40,240
خطا، به این معنی است که این روش
266
00:10:40,240 –> 00:10:42,800
به درستی اجرا شده است، حالا بیایید
267
00:10:42,800 –> 00:10:44,800
ببینیم که چگونه از
268
00:10:44,800 –> 00:10:46,880
ایجاد این روش سود میبریم زیرا باید
269
00:10:46,880 –> 00:10:49,680
پیش برویم و با استفاده از قیمت و مقدار یک محاسبه برای ما ایجاد کنیم،
270
00:10:49,680 –> 00:10:52,480
بنابراین من
271
00:10:52,480 –> 00:10:54,880
عمداً دو مورد دیگر را اینجا دریافت خواهم کرد.
272
00:10:54,880 –> 00:10:57,200
پارامترهایی که فعلاً میتوانیم x
273
00:10:57,200 –> 00:10:59,920
و y را نام ببریم و فقط میتوانیم
274
00:10:59,920 –> 00:11:04,240
بگوییم x ضرب در y برگردانده میشود و حالا من
275
00:11:04,240 –> 00:11:06,640
ادامه میدهم و دو آرگومان اضافی را در اینجا ارسال
276
00:11:06,640 –> 00:11:11,279
میکنم و آن عبارت است
277
00:11:11,279 –> 00:11:14,240
از item1.price، دومی مقدار خواهد بود به طوری
278
00:11:14,240 –> 00:11:16,079
که کار می کند زیرا وقتی
279
00:11:16,079 –> 00:11:18,640
این متد را در پس زمینه فراخوانی می کنید
280
00:11:18,640 –> 00:11:20,959
پایتون این را به عنوان یک آرگومان ارسال می کند
281
00:11:20,959 –> 00:11:23,360
و سپس این آرگومان دوم را ارسال می کند و سپس
282
00:11:23,360 –> 00:11:25,360
این به عنوان آرگومان سوم ارسال شده است
283
00:11:25,360 –> 00:11:27,519
تا عالی است و اگر من آن را اجرا
284
00:11:27,519 –> 00:11:30,480
کنم و در واقع این را چاپ کنم پس
285
00:11:30,480 –> 00:11:31,760
ببخشید که
286
00:11:31,760 –> 00:11:34,240
قبل از چاپ آن را اجرا می کنم، بنابراین من
287
00:11:34,240 –> 00:11:36,160
این
288
00:11:36,160 –> 00:11:38,240
عبارت را با این
289
00:11:38,240 –> 00:11:40,160
تابع داخلی چاپ احاطه می کنم و آن را اجرا می کنم و شما
290
00:11:40,160 –> 00:11:43,440
500 را همانطور که انتظار می رود مشاهده خواهید کرد اکنون می توانم exa را انجام
291
00:11:43,440 –> 00:11:46,000
دهم برای محاسبه
292
00:11:46,000 –> 00:11:49,360
قیمت کل کالای دوم ما یکسان است، بنابراین اگر من
293
00:11:49,360 –> 00:11:52,560
این را بگیرم و آن را در
294
00:11:52,560 –> 00:11:55,040
این خط بچسبانم و در واقع این را به
295
00:11:55,040 –> 00:11:58,639
مورد دو تغییر دهم و این را به مورد دوم
296
00:11:58,639 –> 00:12:01,120
و همچنین این یکی را تغییر دهم،
297
00:12:01,120 –> 00:12:02,639
دریافت خواهم کرد.
298
00:12:02,639 –> 00:12:05,519
سه هزار همانطور که انتظار می رود و به این ترتیب است
299
00:12:05,519 –> 00:12:07,600
که شما می توانید یک فلز درست کنید، بنابراین
300
00:12:07,600 –> 00:12:09,680
تا آن مرحله ما متوجه شدیم که
301
00:12:09,680 –> 00:12:11,680
می توانیم ویژگی ها را اختصاص دهیم و همچنین
302
00:12:11,680 –> 00:12:14,000
روش هایی را ایجاد کنیم که می توانیم
303
00:12:14,000 –> 00:12:16,000
جلو برویم و آنها را مستقیماً از نمونه های خود
304
00:12:16,000 –> 00:12:19,279
مانند آن دو مثال در آن استفاده کنیم.
305
00:12:19,279 –> 00:12:22,560
خط و همچنین در آن خط، اکنون در
306
00:12:22,560 –> 00:12:24,560
آن قسمت، ما میخواهیم
307
00:12:24,560 –> 00:12:26,639
مشکلات دیگری را که از نظر
308
00:12:26,639 –> 00:12:28,480
بهترین روشها در برنامهنویسی شیگرا داریم
309
00:12:28,480 –> 00:12:30,160
و چیزهایی
310
00:12:30,160 –> 00:12:32,079
که در هر پروژهای که
311
00:12:32,079 –> 00:12:34,720
بر اساس oop all است مشاهده کنید، حل کنیم. درست است پس بیایید
312
00:12:34,720 –> 00:12:36,480
اکنون شروع کنیم یکی از اولین مشکلاتی
313
00:12:36,480 –> 00:12:38,800
که در اینجا داریم این واقعیت است
314
00:12:38,800 –> 00:12:41,279
که ما مجموعه ای از قوانین برای
315
00:12:41,279 –> 00:12:43,040
ویژگی هایی که می خواهید
316
00:12:43,040 –> 00:12:44,880
برای نمونه سازی موفقیت آمیز یک نمونه تصویب کنید نداریم
317
00:12:44,880 –> 00:12:47,040
و این بدان
318
00:12:47,040 –> 00:12:49,360
معناست که برای هر آیتمی که میخواهم
319
00:12:49,360 –> 00:12:51,600
جلو بروم و ایجاد کنم، نیاز به کد سختی
320
00:12:51,600 –> 00:12:53,519
در نام ویژگی
321
00:12:53,519 –> 00:12:56,639
مانند مواردی که در اینجا وجود دارد، دارم و
322
00:12:56,639 –> 00:12:59,200
اگر میتوانستیم به نحوی
323
00:12:59,200 –> 00:13:01,040
در کلاس اعلام کنیم که برای
324
00:13:01,040 –> 00:13:03,519
نمونهسازی یک نمونه با موفقیت
325
00:13:03,519 –> 00:13:06,959
نام قیمت و مقدار باید ارسال شود،
326
00:13:06,959 –> 00:13:08,880
در غیر این صورت نمونه نمیتوانست
327
00:13:08,880 –> 00:13:11,200
با موفقیت ایجاد شود، بنابراین
328
00:13:11,200 –> 00:13:13,519
به این معنی است که
329
00:13:13,519 –> 00:13:16,560
اگر میتوانستیم به نحوی
330
00:13:16,560 –> 00:13:19,040
چیزی را در پسزمینه اجرا کنیم، در این ثانیه
331
00:13:19,040 –> 00:13:21,519
که نمونهای را نمونهسازی میکنیم و
332
00:13:21,519 –> 00:13:24,000
وجود دارد، میتوانست یک گزینه عالی باشد. راهی که می توانید به چنین
333
00:13:24,000 –> 00:13:26,399
رفتاری برسید و آن هم با ایجاد یک
334
00:13:26,399 –> 00:13:28,959
متد خاص با یک نام بسیار منحصر به فرد است
335
00:13:28,959 –> 00:13:31,120
که به آن دو خط زیر خط ابتدایی
336
00:13:31,120 –> 00:13:33,760
دو برابر می گویند اکنون ممکن است
337
00:13:33,760 –> 00:13:35,920
این اصطلاح را بشنوید و همچنین به عنوان سازنده نامیده می شود
338
00:13:35,920 –> 00:13:38,639
که اساساً متدی است
339
00:13:38,639 –> 00:13:41,199
با یک روش منحصر به فرد. نامی که باید
340
00:13:41,199 –> 00:13:44,000
عمداً آن را همانطور که هست بنامید
341
00:13:44,000 –> 00:13:47,279
تا از ویژگی های خاص آن استفاده کنید، اکنون روشی
342
00:13:47,279 –> 00:13:49,440
که قرار است کار کند با
343
00:13:49,440 –> 00:13:50,720
ایجاد
344
00:13:50,720 –> 00:13:52,959
آن به شکل زیر است g way بنابراین
345
00:13:52,959 –> 00:13:56,079
دو خط زیر خط خواهد شد و همانطور که می بینید من
346
00:13:56,079 –> 00:13:58,079
قبلاً برای برخی از
347
00:13:58,079 –> 00:14:00,639
روش های بسیار خاص تکمیل خودکار دارم که
348
00:14:00,639 –> 00:14:03,120
با زیر خط دوبل شروع و پایان می یابند
349
00:14:03,120 –> 00:14:06,160
اکنون مجموعه ای از آن روش ها
350
00:14:06,160 –> 00:14:08,480
به نام متدهای جادویی استفاده می شود و ما می
351
00:14:08,480 –> 00:14:10,399
خواهیم یاد بگیریم. روشهای جادویی بسیار بیشتری
352
00:14:10,399 –> 00:14:13,680
که در اوپ دارید، اما
353
00:14:13,680 –> 00:14:15,120
اولین موردی که میخواهیم با آن شروع
354
00:14:15,120 –> 00:14:18,399
کنیم، زیر خط ابتدایی دوبل است،
355
00:14:18,399 –> 00:14:20,560
خوب است، بنابراین اکنون که
356
00:14:20,560 –> 00:14:22,880
این روش را ایجاد کردهایم، بیایید در واقع
357
00:14:22,880 –> 00:14:24,480
ببینیم این روش در
358
00:14:24,480 –> 00:14:26,399
پسزمینه، بنابراین وقتی پیش میروید و
359
00:14:26,399 –> 00:14:29,040
نمونهای از یک کلاس ایجاد میکنید،
360
00:14:29,040 –> 00:14:31,440
پایتون این تابع ابتدایی دوتایی زیرخط را
361
00:14:31,440 –> 00:14:34,320
بهطور خودکار اجرا میکند، پس
362
00:14:34,320 –> 00:14:36,560
به این معنی است که اکنون که ما
363
00:14:36,560 –> 00:14:38,959
اعلام کردهایم کلاس ما پایتون
364
00:14:38,959 –> 00:14:41,360
از این خط عبور میکند و سپس از آنجایی که یک
365
00:14:41,360 –> 00:14:43,760
نمونه ایجاد شده است و ما
366
00:14:43,760 –> 00:14:46,160
روش init double score را طراحی کردهایم، سپس
367
00:14:46,160 –> 00:14:48,399
اقداماتی را که در
368
00:14:48,399 –> 00:14:50,480
داخل این دو
369
00:14:50,480 –> 00:14:52,880
خط زیر هستند، اکنون به منظور فراخوانی میشود تا
370
00:14:52,880 –> 00:14:55,360
به شما ثابت کنم که پس از آن من می خواهم
371
00:14:55,360 –> 00:14:58,079
با یک چاپ بسیار ابتدایی در اینجا شروع کنم که می
372
00:14:58,079 –> 00:15:00,399
گوید من به این شکل خلق شده ام،
373
00:15:00,399 –> 00:15:04,079
اکنون یک نمونه به
374
00:15:04,079 –> 00:15:06,720
اینجا رسیدیم و در اینجا یک نمونه دیگر گرفتیم، بنابراین باید
375
00:15:06,720 –> 00:15:09,360
ببینیم که من دو بار ایجاد شده ام و برای
376
00:15:09,360 –> 00:15:11,199
جلوگیری از سردرگمی سپس من می خواهم
377
00:15:11,199 –> 00:15:13,920
آن خطوط چاپ را از اینجا حذف کنم تا
378
00:15:13,920 –> 00:15:16,959
بتوانیم یک تصویر تمیزتر را ببینیم، بنابراین
379
00:15:16,959 –> 00:15:19,279
اگر قرار بود برنامه خود را اجرا کنیم، می
380
00:15:19,279 –> 00:15:21,920
توانید ببینید که ما دو بار ایجاد کرده ایم
381
00:15:21,920 –> 00:15:24,560
و این به این دلیل است که پایتون این
382
00:15:24,560 –> 00:15:26,160
زیر خط را دو برابر init double نامیده است.
383
00:15:26,160 –> 00:15:28,480
متد underscore دو بار به لطف آن دو
384
00:15:28,480 –> 00:15:30,480
نمونه ای که ما درست کرده ایم،
385
00:15:30,480 –> 00:15:32,160
بنابراین اکنون که از تابع دوتایی underscore
386
00:15:32,160 –> 00:15:34,160
init در این کلاس استفاده می کنیم، باید
387
00:15:34,160 –> 00:15:36,480
از آن بهره ببریم و مشکلات بیشتری
388
00:15:36,480 –> 00:15:39,040
را حل کنیم تا بهترین
389
00:15:39,040 –> 00:15:41,120
روش های oop را در حال حاضر اگر به خاطر داشته باشید در
390
00:15:41,120 –> 00:15:43,120
ابتدای این آموزش گفتم
391
00:15:43,120 –> 00:15:44,800
یکی از مشکلاتی که تا به حال داریم
392
00:15:44,800 –> 00:15:46,959
این است که ما همچنان
393
00:15:46,959 –> 00:15:49,519
394
00:15:49,519 –> 00:15:52,079
با گفتن نقطه نام نقطه قیمت
395
00:15:52,079 –> 00:15:54,639
مقدار نقطه و این چیزی است که در ویژگی ها به آن شکل کد می کنیم. اکنون
396
00:15:54,639 –> 00:15:57,519
میتوانیم مطمئناً از آن اجتناب کنیم، بیایید ببینیم چگونه
397
00:15:57,519 –> 00:15:59,519
میتوانیم از ایجاد آن
398
00:15:59,519 –> 00:16:01,440
ویژگیهای کدگذاریشده سخت برای هر یک از
399
00:16:01,440 –> 00:16:03,279
نمونههای اینجا اجتناب کنیم، بنابراین میتوانیم در واقع
400
00:16:03,279 –> 00:16:04,959
از روش شروع دوتایی
401
00:16:04,959 –> 00:16:06,959
که طراحی کردهایم بهره ببریم و بیایید
402
00:16:06,959 –> 00:16:09,759
ببینیم چگونه اکنون آن را درک میکنیم. هر
403
00:16:09,759 –> 00:16:12,000
نمونه ای که ما آن را ایجاد خواهیم کرد، پیش می رود
404
00:16:12,000 –> 00:16:13,519
و به
405
00:16:13,519 –> 00:16:16,000
طور خودکار این متد دو خط مقدم را فراخوانی می کند، بنابراین
406
00:16:16,000 –> 00:16:18,720
به این معنی است که نه تنها ما می توانیم
407
00:16:18,720 –> 00:16:20,320
به خودمان اجازه دهیم پارامتر فروش را دریافت کنیم،
408
00:16:20,320 –> 00:16:22,160
زیرا این یک کار اجباری
409
00:16:22,160 –> 00:16:24,000
است که باید انجام دهیم زیرا پایتون
410
00:16:24,000 –> 00:16:26,399
در پسزمینه
411
00:16:26,399 –> 00:16:28,959
خود نمونه را به عنوان آرگومان اول ارسال میکند، ما
412
00:16:28,959 –> 00:16:32,000
علاوه بر این میتوانیم پارامترهای بیشتری را بگیریم و
413
00:16:32,000 –> 00:16:34,560
سپس کاری با آنها انجام دهیم، بنابراین به عنوان یک
414
00:16:34,560 –> 00:16:36,639
شروع، فرض میکنیم که مایلیم
415
00:16:36,639 –> 00:16:38,560
یک پارامتر دیگر را دریافت کنیم که
416
00:16:38,560 –> 00:16:41,120
نام آن را نامگذاری کنیم و همانطور که میبینید به
417
00:16:41,120 –> 00:16:43,120
طور خودکار پایتون می خواهد
418
00:16:43,120 –> 00:16:46,320
شکایت کند که چگونه آرگومان نام
419
00:16:46,320 –> 00:16:48,240
در اینجا پر نشده است، بنابراین
420
00:16:48,240 –> 00:16:50,720
اکنون می توانم ادامه
421
00:16:50,720 –> 00:16:53,279
دهم و آرگومان تلفن را برای آن یکی و برای آن
422
00:16:53,279 –> 00:16:55,519
پاس کنم. و دومی من میتوانم پیش بروم و
423
00:16:55,519 –> 00:16:58,800
در آرگومان لپتاپ بگذرم، وقتی
424
00:16:58,800 –> 00:17:01,279
این را ایجاد کردم، در واقع
425
00:17:01,279 –> 00:17:03,120
میتوانم ادامه دهم و خط چاپ خود را کمی تغییر
426
00:17:03,120 –> 00:17:05,599
دهم تا یک خط چاپ منحصر به فرد باشد
427
00:17:05,599 –> 00:17:08,240
که میتوانم از کجا هر چاپ را شناسایی کنم.
428
00:17:08,240 –> 00:17:10,480
خط از آنجا آمده است، بنابراین من می
429
00:17:10,480 –> 00:17:12,640
توانم ادامه دهم و بگویم که یک نمونه
430
00:17:12,640 –> 00:17:13,839
ایجاد شده است
431
00:17:13,839 –> 00:17:16,720
و از یک ستون در اینجا استفاده می کنم و سپس به نام آن اشاره
432
00:17:16,720 –> 00:17:19,760
می کنم و حالا که ما
433
00:17:19,760 –> 00:17:22,480
این را ایجاد کرده ایم، اگر قرار بود
434
00:17:22,480 –> 00:17:24,720
برنامه خود را اجرا کنیم، جملات منحصر به فردی را خواهید دید
435
00:17:24,720 –> 00:17:27,039
و نمونههایی که برای
436
00:17:27,039 –> 00:17:30,000
تلفن و همچنین لپتاپ ایجاد
437
00:17:30,000 –> 00:17:32,320
شدهاند، اکنون که این کار را انجام دادهایم
438
00:17:32,320 –> 00:17:34,000
، چیزی وجود دارد که هنوز
439
00:17:34,000 –> 00:17:36,640
کاملاً کامل نیست زیرا ما هنوز
440
00:17:36,640 –> 00:17:40,080
از ویژگی نام اینجا و اینجا عبور میکنیم، بنابراین
441
00:17:40,080 –> 00:17:43,120
اکنون توجه کنید که چگونه شروع میشود. متد
442
00:17:43,120 –> 00:17:45,760
باید self را نیز به عنوان یک محیط دریافت
443
00:17:45,760 –> 00:17:47,760
کند و ما از قبل دلیل آن را می دانیم
444
00:17:47,760 –> 00:17:50,080
و این واقعیت که خود را
445
00:17:50,080 –> 00:17:52,320
به عنوان پارامتر در اینجا داریم می تواند به
446
00:17:52,320 –> 00:17:54,480
ما اجازه دهد تا ویژگی ها را از
447
00:17:54,480 –> 00:17:57,039
متد init اختصاص دهیم تا مجبور نباشیم
448
00:17:57,039 –> 00:17:59,039
برویم. جلوتر a و
449
00:17:59,039 –> 00:18:01,919
برای هر یک از نمونههایی که ایجاد میکنیم، ویژگی نام را اختصاص دهید،
450
00:18:01,919 –> 00:18:04,160
به این معنی که من میتوانم به
451
00:18:04,160 –> 00:18:07,039
صورت پویا یک ویژگی را به یک
452
00:18:07,039 –> 00:18:09,679
نمونه از این متد جادویی اختصاص دهم که به
453
00:18:09,679 –> 00:18:12,320
آن دو خط ابتدایی
454
00:18:12,320 –> 00:18:14,880
میگویند، بنابراین اگر میخواهم
455
00:18:14,880 –> 00:18:18,240
نام خود نقطهای را بگویم. من
456
00:18:18,240 –> 00:18:21,760
ویژگی نام را به هر نمونه ای که
457
00:18:21,760 –> 00:18:24,640
قرار است ایجاد یا ایجاد شود اختصاص می دهم
458
00:18:24,640 –> 00:18:27,520
و آن را با نامی
459
00:18:27,520 –> 00:18:30,400
که از اینجا منتقل می شود برابر می کنم، بنابراین
460
00:18:30,400 –> 00:18:32,720
به این معنی است که اکنون می
461
00:18:32,720 –> 00:18:34,640
توانم به خودم اجازه دهم
462
00:18:34,640 –> 00:18:37,280
این خط و سپس
463
00:18:37,280 –> 00:18:40,160
این خط را حذف کنید تا همانطور که می بینید اکنون
464
00:18:40,160 –> 00:18:42,880
به لطف
465
00:18:42,880 –> 00:18:45,280
این self.name برابر با نامی است که
466
00:18:45,280 –> 00:18:47,520
اینجا نوشته ایم یک تخصیص ویژگی پویا دارم و برای آزمایش اینکه آیا
467
00:18:47,520 –> 00:18:49,679
انتساب مشخصه کار کرده است، می
468
00:18:49,679 –> 00:18:52,080
توانم به اینجا بروم و از دو مورد دیگر استفاده کنم. خطوطی
469
00:18:52,080 –> 00:18:53,760
که شبیه زیر هستند، بنابراین من
470
00:18:53,760 –> 00:18:55,799
471
00:18:55,799 –> 00:18:59,600
item1.name را چاپ می کنم و نام نقطه مورد 2 را نیز چاپ می کنم
472
00:18:59,600 –> 00:19:02,000
و برای جلوگیری از
473
00:19:02,000 –> 00:19:04,080
سردرگمی، از شر این خط خلاص می شوم،
474
00:19:04,080 –> 00:19:06,480
بنابراین ما فقط خطوط چاپ
475
00:19:06,480 –> 00:19:08,799
را از اینجا می بینیم. و حالا اگر قرار بود اجرا
476
00:19:08,799 –> 00:19:10,880
کنید سپس میبینید که ما
477
00:19:10,880 –> 00:19:13,440
تلفن و لپتاپ را دریافت میکنیم، به این معنی است که ما
478
00:19:13,440 –> 00:19:15,280
توانستیم ویژگیها را به
479
00:19:15,280 –> 00:19:18,080
صورت پویا اختصاص دهیم و این عالی است و اکنون
480
00:19:18,080 –> 00:19:20,080
که ایده آن را به دست آوردیم،
481
00:19:20,080 –> 00:19:21,840
باید برای بقیه ویژگیها نیز همین کار را انجام دهیم.
482
00:19:21,840 –> 00:19:24,240
که
483
00:19:24,240 –> 00:19:27,120
میخواهیم دریافت کنیم، بنابراین قیمت و کمیت را هم داریم که باید از
484
00:19:27,120 –> 00:19:29,919
آن مراقبت کنیم، بنابراین من به
485
00:19:29,919 –> 00:19:31,520
روش init خود میروم و
486
00:19:31,520 –> 00:19:32,400
دوباره
487
00:19:32,400 –> 00:19:33,360
قیمت
488
00:19:33,360 –> 00:19:35,679
و مقدار را دریافت میکنم و دقیقاً انجام میدهم
489
00:19:35,679 –> 00:19:37,840
همین مورد است، بنابراین من می خواهم
490
00:19:37,840 –> 00:19:40,320
ویژگی قیمت را تعیین کنم و آن
491
00:19:40,320 –> 00:19:41,440
برابر با
492
00:19:41,440 –> 00:19:44,720
قیمت و مقدار برابر با مقدار خواهد بود
493
00:19:44,720 –> 00:19:46,960
و همچنین می توانید ببینید که
494
00:19:46,960 –> 00:19:49,200
دوباره پایتون از قیمت
495
00:19:49,200 –> 00:19:51,200
و مقدار ارسال نشده در
496
00:19:51,200 –> 00:19:55,200
اینجا شکایت می کند. میتوانم بگویم 100 و سپس 5
497
00:19:55,200 –> 00:19:57,200
و سپس میتوانم آنها را حذف کنم
498
00:19:57,200 –> 00:19:59,760
و سپس میتوانم همین کار را اینجا انجام دهم، میتوانم
499
00:19:59,760 –> 00:20:04,640
1000 و سپس 3 را پاس کنم و آنها را حذف کنم
500
00:20:04,640 –> 00:20:06,400
و برای اینکه به شما ثابت کنم که این
501
00:20:06,400 –> 00:20:09,200
کار میکند، پس میخواهم
502
00:20:09,200 –> 00:20:11,600
چند بار از خودم کپی کنید و این را
503
00:20:11,600 –> 00:20:14,720
به مقدار تغییر دهید، منظورم
504
00:20:14,720 –> 00:20:16,159
قیمت
505
00:20:16,159 –> 00:20:18,559
این است یکی قیمت
506
00:20:18,559 –> 00:20:21,280
خواهد بود و این یکی مقدار و این یکی
507
00:20:21,280 –> 00:20:23,919
نیز خواهد بود و حالا اگر بخواهم آن را اجرا
508
00:20:23,919 –> 00:20:25,919
کنم، می بینید که نتایج مطابق
509
00:20:25,919 –> 00:20:27,840
انتظار است، بنابراین این روشی است که
510
00:20:27,840 –> 00:20:30,320
باید با
511
00:20:30,320 –> 00:20:32,559
روش اولیه زیرخط دوبل کار کنید. همیشه باید
512
00:20:32,559 –> 00:20:34,159
مراقب ویژگی هایی باشد که می خواهید
513
00:20:34,159 –> 00:20:36,559
به یک شی در داخل متد init دوتایی زیرخط اختصاص دهید به این
514
00:20:36,559 –> 00:20:38,880
معنی که در
515
00:20:38,880 –> 00:20:41,039
داخل سازنده چند نکته جانبی وجود
516
00:20:41,039 –> 00:20:42,480
دارد که بسیار مهم
517
00:20:42,480 –> 00:20:45,120
است زمانی که با کلاس ها کار
518
00:20:45,120 –> 00:20:46,720
می کنیم و از
519
00:20:46,720 –> 00:20:48,960
روش شروع امتیاز دوگانه این بدان معنا نیست که
520
00:20:48,960 –> 00:20:50,960
ما نمی توانیم بین
521
00:20:50,960 –> 00:20:53,679
پارامترهای اجباری و پارامترهای غیر اجباری تفاوت قائل شویم،
522
00:20:53,679 –> 00:20:56,640
بنابراین بگویید که در حال حاضر
523
00:20:56,640 –> 00:20:58,799
نمی دانید چقدر از یک
524
00:20:58,799 –> 00:21:01,840
مورد خاص دارید، سپس می توانید ادامه دهید و
525
00:21:01,840 –> 00:21:04,320
به طور پیش فرض این پارامتر کمیت را دریافت کنید.
526
00:21:04,320 –> 00:21:06,320
به عنوان صفر، زیرا
527
00:21:06,320 –> 00:21:08,080
وضعیت واقعی است که شما در حال حاضر
528
00:21:08,080 –> 00:21:09,919
نمی دانید چه تعداد تلفن در
529
00:21:09,919 –> 00:21:12,240
فروشگاه خود دارید، بنابراین می توانید مستقیماً ادامه دهید
530
00:21:12,240 –> 00:21:14,640
و از یک مقدار پیش فرض برای آن استفاده کنید، به
531
00:21:14,640 –> 00:21:15,600
عنوان مثال
532
00:21:15,600 –> 00:21:18,159
صفر a و سپس این بدان معنی است که شما
533
00:21:18,159 –> 00:21:21,039
مجبور نخواهید بود در این پنج و
534
00:21:21,039 –> 00:21:23,520
سه در اینجا و اکنون بگذرید تا
535
00:21:23,520 –> 00:21:26,080
نتایج آن را به شما نشان دهیم که اگر من برنامه خود را اجرا کنم،
536
00:21:26,080 –> 00:21:27,840
می توانید ببینید که ما
537
00:21:27,840 –> 00:21:31,440
دو بار برای آن دو چاپ صفر دریافت
538
00:21:31,440 –> 00:21:33,440
کردیم. در اینجا چیزی است که شما
539
00:21:33,440 –> 00:21:35,760
می خواهید به خاطر بسپارید و یک
540
00:21:35,760 –> 00:21:37,840
نکته بسیار مهم دیگر که می خواهم
541
00:21:37,840 –> 00:21:40,000
اکنون در مورد آن صحبت کنم این است که شما می
542
00:21:40,000 –> 00:21:43,280
توانید ویژگی هایی را به نمونه های خاص به
543
00:21:43,280 –> 00:21:45,919
صورت جداگانه اختصاص دهید، بنابراین بگویید که می خواهید
544
00:21:45,919 –> 00:21:49,440
بدانید که آیا لپ تاپ دارای numpad است یا خیر. نه
545
00:21:49,440 –> 00:21:52,320
به این دلیل که برخی از لپتاپها دارای
546
00:21:52,320 –> 00:21:54,880
numpad در سمت راست صفحهکلید
547
00:21:54,880 –> 00:21:57,760
نیستند، اما این یک ویژگی واقعی نیست
548
00:21:57,760 –> 00:22:00,559
که بخواهید به یک تلفن اختصاص دهید
549
00:22:00,559 –> 00:22:03,440
و به همین دلیل است که میتوانید ادامه دهید و اجازه دهید
550
00:22:03,440 –> 00:22:05,919
من آن خطوط چاپی را حذف کنم.
551
00:22:05,919 –> 00:22:07,840
و به همین دلیل است که می توانید ادامه دهید و
552
00:22:07,840 –> 00:22:11,120
چیزی شبیه به آیتم دو نقطه دارای
553
00:22:11,120 –> 00:22:14,320
numpad برابر با false است و
554
00:22:14,320 –> 00:22:15,760
این چیزی است که می خواهید به
555
00:22:15,760 –> 00:22:18,480
خاطر بسپارید زیرا این واقعیت که از
556
00:22:18,480 –> 00:22:20,480
برخی انتساب های ویژگی در
557
00:22:20,480 –> 00:22:23,039
سازنده استفاده می کنید به این معنی نیست که
558
00:22:23,039 –> 00:22:24,960
شما نمی توانید پس از نمونه برداری از نمونه هایی که می خواهید، برخی از ویژگی های بیشتری را که می خواهید اضافه کنید،
559
00:22:24,960 –> 00:22:28,159
560
00:22:28,159 –> 00:22:30,400
بنابراین اکنون
561
00:22:30,400 –> 00:22:32,400
که ما این را فهمیدیم،
562
00:22:32,400 –> 00:22:34,480
هنوز یک مشکل کوچک باقی مانده است
563
00:22:34,480 –> 00:22:37,039
که باید حل کنیم اکنون توجه کنید
564
00:22:37,039 –> 00:22:40,000
که قیمت کل چگونه محاسبه می شود. هنوز
565
00:22:40,000 –> 00:22:43,200
x و y را به عنوان پارامتر دریافت می کند
566
00:22:43,200 –> 00:22:45,760
و سوالی که اکنون می پرسیم این است
567
00:22:45,760 –> 00:22:48,159
که چرا هنوز آن پارامترها را به خوبی دریافت می کند،
568
00:22:48,159 –> 00:22:50,960
ما مطمئناً اکنون نمی توانیم
569
00:22:50,960 –> 00:22:53,679
آن پارامترها را دریافت کنیم زیرا همانطور که می دانیم برای
570
00:22:53,679 –> 00:22:56,240
هر متدی که در کلاس ها طراحی می
571
00:22:56,240 –> 00:22:58,720
کنیم، خود شی ارسال می شود. در
572
00:22:58,720 –> 00:23:00,559
استدلال و من می دانم که من این را
573
00:23:00,559 –> 00:23:02,960
چند بار تکرار کردم، اما اینجا جایی است که من نمی توانم
574
00:23:02,960 –> 00:23:05,360
کلاس ها را درک کنم، به همین دلیل
575
00:23:05,360 –> 00:23:07,520
درک این رفتار بسیار مهم
576
00:23:07,520 –> 00:23:09,760
است و ما قبلاً می دانیم
577
00:23:09,760 –> 00:23:12,080
که خود شی به عنوان یک آرگومان ارسال شده است، به
578
00:23:12,080 –> 00:23:15,280
همین دلیل است که ما دریافت می کنیم خود و بنابراین این
579
00:23:15,280 –> 00:23:19,200
بدان معناست که اکنون میتوانیم
580
00:23:19,200 –> 00:23:23,200
قیمت خود را ضربدر مقدار خود برگردانیم
581
00:23:23,200 –> 00:23:25,039
و این بدان معناست که واقعاً مجبور نیستیم
582
00:23:25,039 –> 00:23:27,440
آن پارامترها را دریافت کنیم زیرا
583
00:23:27,440 –> 00:23:29,679
584
00:23:29,679 –> 00:23:32,320
زمانی که نمونهها ایجاد شدند، آن ویژگیها را اختصاص میدهیم، بنابراین به
585
00:23:32,320 –> 00:23:34,640
این معنی است که ما به آن
586
00:23:34,640 –> 00:23:36,559
ویژگیها در طول متدهایی دسترسی
587
00:23:36,559 –> 00:23:38,400
داریم که در آینده در اینجا در این کلاس اضافه میکنیم
588
00:23:38,400 –> 00:23:40,720
، بنابراین برای اینکه آزمایش کنیم
589
00:23:40,720 –> 00:23:43,039
که کار میکند، سپس به
590
00:23:43,039 –> 00:23:45,440
فعلاً این مثال را حذف کنید و من
591
00:23:45,440 –> 00:23:48,080
میخواهم بگویم مورد 1 نقطه را چاپ کنید
592
00:23:48,080 –> 00:23:48,960
593
00:23:48,960 –> 00:23:51,840
قیمت کل را محاسبه کنید تا بتوانیم
594
00:23:51,840 –> 00:23:54,880
نتیجه را در اینجا برگردانیم و من
595
00:23:54,880 –> 00:23:56,400
همین کار را برای
596
00:23:56,400 –> 00:23:57,440
مورد
597
00:23:57,440 –> 00:24:00,799
دوم انجام خواهم داد.
598
00:24:00,799 –> 00:24:03,760
از صفر، سپس
599
00:24:03,760 –> 00:24:06,320
من ادامه می دهم و مقادیر را در اینجا ارسال
600
00:24:06,320 –> 00:24:09,039
می کنم، بنابراین برای مثال یک و سه می گویم
601
00:24:09,039 –> 00:24:10,880
زیرا نمی
602
00:24:10,880 –> 00:24:13,360
خواهم یک عدد بزرگ را در یک صفر ضرب کنم
603
00:24:13,360 –> 00:24:16,400
و این می تواند از اینجا بیاید، بنابراین آن را
604
00:24:16,400 –> 00:24:18,720
اجرا می کنم و می بینید که ما نتایج مورد انتظار را دریافت میکنیم،
605
00:24:18,720 –> 00:24:21,760
بنابراین اکنون کاملاً میدانیم
606
00:24:21,760 –> 00:24:24,640
که چگونه
607
00:24:24,640 –> 00:24:27,120
با سازندهها در کلاسها کار کنیم
608
00:24:27,120 –> 00:24:28,960
و بهترین روشهایی که
609
00:24:28,960 –> 00:24:31,279
باید پیش بروید و به درستی پیادهسازی کنید، چیست،
610
00:24:31,279 –> 00:24:33,760
بنابراین اکنون که این را فهمیدیم،
611
00:24:33,760 –> 00:24:35,440
ممکن است فکر کنیم که همه چیز را به خوبی انجام دادهام،
612
00:24:35,440 –> 00:24:37,760
اما در واقع میخواهم به
613
00:24:37,760 –> 00:24:40,320
شما نشان دهم چه اتفاقی میافتد اگر بخواهیم
614
00:24:40,320 –> 00:24:43,279
رشتهای را به غیر از
615
00:24:43,279 –> 00:24:46,640
یک عدد صحیح وارد کنیم و برنامهمان را اجرا کنیم، بنابراین اگر
616
00:24:46,640 –> 00:24:48,640
آن را اجرا کنیم، میبینیم که
617
00:24:48,640 –> 00:24:51,120
ما در اینجا همه چیز را خراب میکنیم، زیرا
618
00:24:51,120 –> 00:24:53,600
این به عنوان مثال تابع فکر می کند که
619
00:24:53,600 –> 00:24:56,480
باید رشته را
620
00:24:56,480 –> 00:24:58,480
سه بار چاپ کند زیرا می بینید که ما
621
00:24:58,480 –> 00:25:01,600
1000 ضرب در سه داریم که
622
00:25:01,600 –> 00:25:03,760
در اینجا برگردانده می شود، بنابراین یک
623
00:25:03,760 –> 00:25:05,120
هزار بار
624
00:25:05,120 –> 00:25:06,400
یک هزار
625
00:25:06,400 –> 00:25:09,039
دو بار و سپس یک بار دیگر به ما نشان می دهد، بنابراین
626
00:25:09,039 –> 00:25:11,200
معنی آن چیست. که ما باید
627
00:25:11,200 –> 00:25:13,679
انواع دادههای مقادیری را
628
00:25:13,679 –> 00:25:16,080
که ارسال میکنیم اعتبارسنجی کنیم، بنابراین
629
00:25:16,080 –> 00:25:18,640
چند راه برای رسیدن به این هدف وجود دارد و یکی
630
00:25:18,640 –> 00:25:20,799
از راهها استفاده از تایپ کردن در
631
00:25:20,799 –> 00:25:23,200
پارامترهایی است که در اینجا اعلام میکنید،
632
00:25:23,200 –> 00:25:26,240
بنابراین یک شروع عالی برای آن خواهد بود.
633
00:25:26,240 –> 00:25:28,880
به عنوان مثال برای اعلام اینکه یک نام باید یک
634
00:25:28,880 –> 00:25:32,320
رشته باشد، اجازه دهید ابتدا این را پس بگیرم
635
00:25:32,320 –> 00:25:35,039
و آنها را به عدد صحیح تغییر دهم و سپس به
636
00:25:35,039 –> 00:25:38,320
اینجا بروید و آن پارامترها را طراحی کنید،
637
00:25:38,320 –> 00:25:40,559
بنابراین برای تعیین یک تایپ،
638
00:25:40,559 –> 00:25:42,799
باید ادامه دهید و یک ستون si ایجاد کنید. gn به
639
00:25:42,799 –> 00:25:45,039
دنبال آن نوع نوع داده ای است
640
00:25:45,039 –> 00:25:47,760
که انتظار دارید در اینجا دریافت کنید، بنابراین اگر
641
00:25:47,760 –> 00:25:50,159
من فقط مرجع شیء را
642
00:25:50,159 –> 00:25:53,600
به کلاس str وارد کنم
643
00:25:53,600 –> 00:25:56,080
، به این معنی است که باید فقط رشته ها را بپذیرد
644
00:25:56,080 –> 00:25:58,960
و می توانم پیش نمایش آن را با
645
00:25:58,960 –> 00:26:01,200
این را به یک عدد صحیح تغییر دهید و
646
00:26:01,200 –> 00:26:03,440
خواهید دید که ما اینجا شکایتی داریم
647
00:26:03,440 –> 00:26:07,039
که می گوید به جای آن نوع str مورد انتظار int را دریافت
648
00:26:07,039 –> 00:26:10,320
کرد و این عالی است، بنابراین اکنون که
649
00:26:10,320 –> 00:26:12,240
این کار را انجام دادیم
650
00:26:12,240 –> 00:26:15,760
، همین کار را برای خود قیمت انجام می دهم و قیمت
651
00:26:15,760 –> 00:26:17,200
ما در واقع میتوانیم
652
00:26:17,200 –> 00:26:19,279
با عبور از float همین کار را با آن انجام دهیم
653
00:26:19,279 –> 00:26:22,960
، اکنون وقتی
654
00:26:22,960 –> 00:26:26,559
float را پاس میکنیم، اشکالی ندارد که اعداد صحیح را نیز پاس کنیم
655
00:26:26,559 –> 00:26:28,240
و این چیزی است که با
656
00:26:28,240 –> 00:26:30,400
شناورها و اعداد صحیح با هم بسیار منحصربهفرد
657
00:26:30,400 –> 00:26:33,760
است، بنابراین استفاده از تایپ float و
658
00:26:33,760 –> 00:26:36,480
برای کمیت نیازی به تعیین
659
00:26:36,480 –> 00:26:39,279
تایپ نداریم زیرا این واقعیت که ما یک
660
00:26:39,279 –> 00:26:42,159
مقدار پیشفرض از عدد صحیح را ارسال کردهایم،
661
00:26:42,159 –> 00:26:45,360
این پارامتر را همیشه به عنوان عدد صحیح علامتگذاری کردهایم
662
00:26:45,360 –> 00:26:48,640
، به همین دلیل است که به عنوان مثال، اگر قرار بود
663
00:26:48,640 –> 00:26:50,640
این را به همان شکلی که هست رها کنم و کمیت را به آن تغییر دهم.
664
00:26:50,640 –> 00:26:53,279
یک رشته و سپس شما بروید nna می
665
00:26:53,279 –> 00:26:55,440
بینم که می خواهد شکایت کند زیرا
666
00:26:55,440 –> 00:26:58,080
مقدار پیش فرض قبلاً یک عدد صحیح است،
667
00:26:58,080 –> 00:27:01,279
بنابراین انتظار می رود یک عدد صحیح درست باشد،
668
00:27:01,279 –> 00:27:03,120
بنابراین این چیزها در واقع تنظیمات عالی هستند
669
00:27:03,120 –> 00:27:06,000
تا عملکرد init ما را
670
00:27:06,000 –> 00:27:08,400
قدرتمندتر کنند، اما ممکن است همچنان
671
00:27:08,400 –> 00:27:10,720
بخواهیم مقادیر دریافتی را در
672
00:27:10,720 –> 00:27:13,679
به روش زیر بگویید که هرگز نمی
673
00:27:13,679 –> 00:27:16,240
خواهید تعداد منفی دریافت کنید
674
00:27:16,240 –> 00:27:18,480
و هرگز نمی خواهید یک عدد قیمت منفی دریافت کنید،
675
00:27:18,480 –> 00:27:20,880
بنابراین این چیزی است
676
00:27:20,880 –> 00:27:23,200
که با تایپ کردن در اینجا نمی توانید به آن دست پیدا
677
00:27:23,200 –> 00:27:25,279
کنید، اما در واقع یک راه عالی برای حل
678
00:27:25,279 –> 00:27:27,840
این موضوع وجود دارد و که با
679
00:27:27,840 –> 00:27:32,000
استفاده از عبارات assert خواهد بود در حال حاضر یک سوم یک
680
00:27:32,000 –> 00:27:36,000
کلمه کلیدی عبارت است که برای بررسی
681
00:27:36,000 –> 00:27:38,960
اینکه آیا بین آنچه در حال
682
00:27:38,960 –> 00:27:41,679
رخ دادن است با انتظارات شما مطابقت دارد یا خیر استفاده می شود، بنابراین بیایید
683
00:27:41,679 –> 00:27:43,840
ببینیم چگونه می توانیم کار با عنوان را انجام دهیم، بنابراین
684
00:27:43,840 –> 00:27:45,520
من در واقع قصد دارم این را حذف کنم.
685
00:27:45,520 –> 00:27:48,880
از اینجا میخواهم روش init خود را
686
00:27:48,880 –> 00:27:50,880
کمی سازماندهی کنم،
687
00:27:50,880 –> 00:27:54,480
اینجا یک نظر میگویم و میگویم assign to
688
00:27:54,480 –> 00:27:55,840
self object
689
00:27:55,840 –> 00:27:59,039
و در بالا چیزی مانند
690
00:27:59,039 –> 00:28:02,159
اجرای اعتبارسنجی به r را میگویم. آرگومانها
691
00:28:02,159 –> 00:28:03,440
692
00:28:03,440 –> 00:28:06,880
کاملاً درست است، بنابراین اکنون ایده خوبی است که
693
00:28:06,880 –> 00:28:09,840
تأیید کنیم که قیمت و مقدار
694
00:28:09,840 –> 00:28:12,559
هر دو بزرگتر یا مساوی صفر هستند،
695
00:28:12,559 –> 00:28:14,720
زیرا احتمالاً نمیخواهیم
696
00:28:14,720 –> 00:28:16,799
با آنها وقتی اعداد منفی هستند
697
00:28:16,799 –> 00:28:19,120
و میخواهیم برنامه را خراب کنیم،
698
00:28:19,120 –> 00:28:21,919
کار کنیم. می توانیم بگوییم ادعا کنید و توجه داشته باشید
699
00:28:21,919 –> 00:28:24,159
که من از آن به عنوان یک دستور استفاده می کنم نه
700
00:28:24,159 –> 00:28:26,480
یک تابع داخلی یا چیزی شبیه به آن
701
00:28:26,480 –> 00:28:28,840
و می توانم بگویم اینجا
702
00:28:28,840 –> 00:28:30,799
قیمت
703
00:28:30,799 –> 00:28:33,200
بزرگتر یا مساوی
704
00:28:33,200 –> 00:28:36,799
صفر است حالا وقتی این را تنظیم کردم می
705
00:28:36,799 –> 00:28:38,320
توانم همین کار را برای
706
00:28:38,320 –> 00:28:41,440
مقدار در واقع بنابراین اجازه دهید من این کار را
707
00:28:41,440 –> 00:28:43,279
به سرعت
708
00:28:43,279 –> 00:28:44,399
از
709
00:28:44,399 –> 00:28:47,440
این طریق انجام دهم و بعد از اینکه این را داشتیم،
710
00:28:47,440 –> 00:28:48,799
می
711
00:28:48,799 –> 00:28:51,279
توانم برنامه خود را اجرا کنم و
712
00:28:51,279 –> 00:28:53,039
خواهید دید که هیچ فلشی دریافت نمی کنم،
713
00:28:53,039 –> 00:28:56,240
اما دومی که این
714
00:28:56,240 –> 00:28:59,440
کمیت را به منفی 1 تغییر می دهم. به عنوان مثال و
715
00:28:59,440 –> 00:29:02,000
این یکی منفی 3 است، پس من
716
00:29:02,000 –> 00:29:05,120
چند خطا خواهم داشت که می گوید
717
00:29:05,120 –> 00:29:08,640
خطای ادعایی اکنون می توانید ببینید که این واقعیت که
718
00:29:08,640 –> 00:29:10,799
ما در اینجا خطای ادعایی را می بینیم
719
00:29:10,799 –> 00:29:13,200
یک استثنای کلی است که
720
00:29:13,200 –> 00:29:15,360
هیچ معنایی ندارد اکنون چه چیزی
721
00:29:15,360 –> 00:29:17,760
با آن زیبا است. شما می توانید
722
00:29:17,760 –> 00:29:20,720
پیام های استثنای خود را دقیقاً در نزدیکی آن
723
00:29:20,720 –> 00:29:23,120
به عنوان آرگومان دوم اضافه کنید، بنابراین
724
00:29:23,120 –> 00:29:25,600
بیایید اینجا به بالا برویم و به
725
00:29:25,600 –> 00:29:28,240
آن دو خط برگردیم، بنابراین اولین آرگومان
726
00:29:28,240 –> 00:29:30,720
که به دستور ارسال می شود
727
00:29:30,720 –> 00:29:32,960
عبارتی است که می خواهد بررسی شود، اما
728
00:29:32,960 –> 00:29:36,000
اگر ما در اینجا باید کاما بگوییم و از یک
729
00:29:36,000 –> 00:29:37,760
رشته برای گفتن
730
00:29:37,760 –> 00:29:39,919
در واقع یک رشته فرمت شده استفاده کنیم و من می
731
00:29:39,919 –> 00:29:41,520
توانم بگویم
732
00:29:41,520 –> 00:29:42,880
قیمت
733
00:29:42,880 –> 00:29:45,760
و سپس به مقدار
734
00:29:45,760 –> 00:29:49,200
آن بیشتر از
735
00:29:49,679 –> 00:29:51,679
0 نیست، مانند اینکه
736
00:29:51,679 –> 00:29:54,080
می توانم یک علامت توضیحی در اینجا اضافه کنم و
737
00:29:54,080 –> 00:29:56,240
می توانم از همان چیزی استفاده کنم
738
00:29:56,240 –> 00:29:58,799
کپی که با یک کاما و این را در
739
00:29:58,799 –> 00:30:03,200
اینجا بچسبانید و این کمیت را تغییر دهید
740
00:30:03,279 –> 00:30:06,080
و سپس به مقدار آن مراجعه کنید
741
00:30:06,080 –> 00:30:08,640
و بگویید که مساوی نیست یعنی
742
00:30:08,640 –> 00:30:11,039
بزرگتر یا مساوی صفر است پس
743
00:30:11,039 –> 00:30:12,720
باید در واقع به
744
00:30:12,720 –> 00:30:15,279
بزرگتر یا مساوی تبدیل شود.
745
00:30:15,279 –> 00:30:16,720
746
00:30:16,720 –> 00:30:19,120
همینطور است و برای اینجا هم همینطور
747
00:30:19,120 –> 00:30:20,000
است
748
00:30:20,000 –> 00:30:21,600
و من در
749
00:30:21,600 –> 00:30:23,679
اینجا فضایی دارم که باید کاملاً حذف شود،
750
00:30:23,679 –> 00:30:26,320
بنابراین اگر قرار بود برنامه خود را
751
00:30:26,320 –> 00:30:28,559
اجرا کنم، می بینید که
752
00:30:28,559 –> 00:30:31,200
مقدار خطای ادعایی
753
00:30:31,200 –> 00:30:34,159
منهای یک بزرگتر یا مساوی از
754
00:30:34,159 –> 00:30:36,559
صفر نیست، بنابراین باید ببینید. این را حذف کنید
755
00:30:36,559 –> 00:30:39,360
en اینجا برای آن و اکنون کامل است،
756
00:30:39,360 –> 00:30:41,200
بنابراین اکنون میدانیم که استفاده از
757
00:30:41,200 –> 00:30:43,360
عبارت assert به ما امکان میدهد تا
758
00:30:43,360 –> 00:30:46,159
آرگومانهایی را که دریافت میکنیم اعتبار سنجی کنیم
759
00:30:46,159 –> 00:30:48,480
و همچنین به ما این امکان را میدهد که در
760
00:30:48,480 –> 00:30:50,480
اسرع وقت
761
00:30:50,480 –> 00:30:52,559
قبل از ادامه با بقیه موارد، اشکالات را برطرف
762
00:30:52,559 –> 00:30:55,120
کنیم. اقداماتی که ما دوست داریم در
763
00:30:55,120 –> 00:30:57,200
این برنامه انجام دهیم، بنابراین اجازه دهید من واقعاً
764
00:30:57,200 –> 00:31:00,880
آن ها را به مقادیر معتبری مانند آن تغییر دهم
765
00:31:00,880 –> 00:31:03,519
و این کاملاً خوب است، بنابراین تا
766
00:31:03,519 –> 00:31:05,519
این مرحله ما در مورد نحوه کار
767
00:31:05,519 –> 00:31:07,679
با سازنده و
768
00:31:07,679 –> 00:31:09,760
همچنین نحوه اختصاص دادن ویژگی های مختلف
769
00:31:09,760 –> 00:31:12,080
به آن را یاد گرفتیم. نمونههایی که در هر نمونه منحصر به فرد خواهند بود، به
770
00:31:12,080 –> 00:31:14,480
این معنی که میتوانید
771
00:31:14,480 –> 00:31:16,320
پیش بروید و هر چقدر که میخواهید نمونه ایجاد
772
00:31:16,320 –> 00:31:18,159
کنید و این کنترل
773
00:31:18,159 –> 00:31:20,320
را دارید که هر مقداری را که میخواهید
774
00:31:20,320 –> 00:31:23,120
برای نام قیمت و مقدار ارسال کنید، اکنون وضعیتی را در نظر بگیرید
775
00:31:23,120 –> 00:31:25,279
که شما می خواهید
776
00:31:25,279 –> 00:31:27,600
از یک ویژگی استفاده کنید که قرار است
777
00:31:27,600 –> 00:31:31,279
جهانی یا در همه موارد باشد، اکنون یک
778
00:31:31,279 –> 00:31:33,360
کاندیدای خوب برای مثال می
779
00:31:33,360 –> 00:31:35,679
تواند موقعیتی باشد که می خواهید
780
00:31:35,679 –> 00:31:38,159
فروش را در آن اعمال کنید. فروشگاه شما پس این بدان معنی است که
781
00:31:38,159 –> 00:31:40,240
شما می خواهید ادامه دهید و
782
00:31:40,240 –> 00:31:42,720
کنترل اعمال تخفیف برای
783
00:31:42,720 –> 00:31:45,679
هر یک از اقلام را داشته باشید و این
784
00:31:45,679 –> 00:31:48,159
کاندیدای خوبی برای ایجاد یک ویژگی است
785
00:31:48,159 –> 00:31:50,480
که قرار است در همه موارد به اشتراک گذاشته شود که
786
00:31:50,480 –> 00:31:54,000
اکنون ما آن را می نامیم.
787
00:31:54,000 –> 00:31:56,720
ویژگی های کلاس صفات و
788
00:31:56,720 –> 00:31:58,480
نوع مشخصه ای که تا اینجا یاد گرفته ایم در
789
00:31:58,480 –> 00:32:00,720
واقع با نام کامل
790
00:32:00,720 –> 00:32:03,440
ویژگی های نمونه نامیده می شود بنابراین در
791
00:32:03,440 –> 00:32:05,200
مورد ویژگی های نمونه همه چیز را می دانیم
792
00:32:05,200 –> 00:32:07,039
و یاد گرفتیم که چگونه با آن کار کنیم اما
793
00:32:07,039 –> 00:32:09,120
با نوع دیگر کار نکردیم.
794
00:32:09,120 –> 00:32:11,039
از ویژگی هایی که در این آموزش انجام خواهیم داد
795
00:32:11,039 –> 00:32:13,360
که دوباره ویژگی کلاس نامیده می شود،
796
00:32:13,360 –> 00:32:16,240
بنابراین یک ویژگی کلاس
797
00:32:16,240 –> 00:32:18,080
یک ویژگی است که قرار است متعلق
798
00:32:18,080 –> 00:32:21,200
به خود کلاس باشد، اما شما می توانید
799
00:32:21,200 –> 00:32:23,679
از سطح نمونه نیز به این ویژگی دسترسی داشته باشید
800
00:32:23,679 –> 00:32:26,000
. پیش رو
801
00:32:26,000 –> 00:32:28,159
و یک کاندیدای خوب برای
802
00:32:28,159 –> 00:32:29,840
ویژگی کلاس را ببینید که می خواهید ادامه دهید و
803
00:32:29,840 –> 00:32:32,480
آن را ایجاد کنید تا به
804
00:32:32,480 –> 00:32:35,519
کلاس ما در اینجا و فقط در اولین
805
00:32:35,519 –> 00:32:37,519
خط داخل کلاس ما بروید i می تواند ادامه دهد و
806
00:32:37,519 –> 00:32:39,600
یک ویژگی کلاس ایجاد کند، بنابراین بیایید
807
00:32:39,600 –> 00:32:41,440
جلو برویم و یک ویژگی مانند
808
00:32:41,440 –> 00:32:44,559
نرخ پرداخت برابر با 0.8 ایجاد کنیم و دلیل اینکه
809
00:32:44,559 –> 00:32:46,399
من این کار را انجام می دهم این است
810
00:32:46,399 –> 00:32:48,000
که گفتم 20 درصد
811
00:32:48,000 –> 00:32:50,880
تخفیف وجود دارد، بنابراین احتمالاً می خواهم یک
812
00:32:50,880 –> 00:32:52,960
ویژگی را ذخیره کنید که توضیح دهد
813
00:32:52,960 –> 00:32:54,559
هنوز چقدر باید بپردازم،
814
00:32:54,559 –> 00:32:58,480
بنابراین در اینجا نرخ پرداخت را بعد از
815
00:32:58,480 –> 00:33:02,480
20 درصد تخفیف می گویم، خوب است، بنابراین
816
00:33:02,480 –> 00:33:04,799
حالا که این را ایجاد کرده ایم، بیایید
817
00:33:04,799 –> 00:33:07,120
ببینیم چه راه هایی برای دسترسی به
818
00:33:07,120 –> 00:33:09,840
این ویژگی وجود دارد. قرار بود پایین
819
00:33:09,840 –> 00:33:12,640
بیایم و در واقع یکی از آن ها را حذف
820
00:33:12,640 –> 00:33:14,640
کنم و چیزی در داخل این خط چاپی بگویم
821
00:33:14,640 –> 00:33:16,240
که شبیه شکل زیر است،
822
00:33:16,240 –> 00:33:18,159
بنابراین سعی می کنم به مرجع خود کلاس دسترسی داشته باشم
823
00:33:18,159 –> 00:33:19,919
، بنابراین قصد ندارم
824
00:33:19,919 –> 00:33:22,399
علاوه بر این، نمونه ای مانند آن ایجاد کنم. من
825
00:33:22,399 –> 00:33:24,240
فقط میخواهم مرجع
826
00:33:24,240 –> 00:33:26,640
خود سطح کلاس را وارد کنم و
827
00:33:26,640 –> 00:33:28,880
سعی میکنم با گفتن نرخ زیر خط پرداخت به این ویژگی دسترسی پیدا
828
00:33:28,880 –> 00:33:31,760
کنم، اگر بخواهم آن را اجرا کنم،
829
00:33:31,760 –> 00:33:33,440
همانطور که
830
00:33:33,440 –> 00:33:35,840
انتظار میرود میبینیم. این ویژگی کلاس به
831
00:33:35,840 –> 00:33:37,679
دلیل این راهی است که اکنون میتوانید
832
00:33:37,679 –> 00:33:40,240
به آن ویژگیهای کلاس دسترسی پیدا کنید،
833
00:33:40,240 –> 00:33:42,480
ممکن است گیج کننده باشد، اما من یک دقیقه
834
00:33:42,480 –> 00:33:45,039
پیش گفتم که میتوانید از سطح نمونه نیز به آن ویژگیهای کلاس دسترسی پیدا کنید
835
00:33:45,039 –> 00:33:47,760
، خوب
836
00:33:47,760 –> 00:33:49,919
اجازه دهید ببینیم که آیا این درست است، بنابراین اگر قرار بود
837
00:33:49,919 –> 00:33:53,200
آن خطوط را دو بار تکرار کنم. با استفاده از
838
00:33:53,200 –> 00:33:55,519
میانبر کنترل d،
839
00:33:55,519 –> 00:33:57,519
بیایید جلو برویم و آنها را به
840
00:33:57,519 –> 00:33:59,200
مورد یک
841
00:33:59,200 –> 00:34:03,440
و این یکی را به مورد دو تغییر دهیم، اکنون ببینید چگونه
842
00:34:03,440 –> 00:34:06,080
سعی میکنم به ویژگی نرخ پرداخت از نمونه دسترسی پیدا کنم
843
00:34:06,080 –> 00:34:08,320
، اگرچه
844
00:34:08,320 –> 00:34:10,879
اکنون چنین ویژگی نمونهای نداریم. این بود
845
00:34:10,879 –> 00:34:12,719
که آن را اجرا کنید، سپس خواهید دید که
846
00:34:12,719 –> 00:34:15,918
ما هنوز هم دسترسی داریم تا
847
00:34:15,918 –> 00:34:18,079
ویژگی کلاس را به خوبی ببینیم که ممکن است
848
00:34:18,079 –> 00:34:20,159
گیج کننده باشد و ممکن است
849
00:34:20,159 –> 00:34:22,399
درک این موضوع سخت باشد که چرا این اتفاق به خوبی رخ می دهد
850
00:34:22,399 –> 00:34:23,918
، در واقع چیزی وجود دارد که هنگام کار باید آن
851
00:34:23,918 –> 00:34:25,679
را درک کنیم. با
852
00:34:25,679 –> 00:34:28,000
نمونه هایی در پایتون، بنابراین وقتی یک
853
00:34:28,000 –> 00:34:30,800
نمونه در دست داریم، ابتدا این
854
00:34:30,800 –> 00:34:33,599
نمونه سعی می کند ویژگی
855
00:34:33,599 –> 00:34:34,800
856
00:34:34,800 –> 00:34:37,839
را در مرحله اول از سطح نمونه بیاورد، اما اگر آن
857
00:34:37,839 –> 00:34:40,159
را پیدا نکرد، سپس
858
00:34:40,159 –> 00:34:42,560
سعی می کند تا آن را برین کند. آن ویژگی را از سطح کلاس گرم کنید،
859
00:34:42,560 –> 00:34:45,119
پس به این معنی است
860
00:34:45,119 –> 00:34:48,079
که مورد یک در اینجا فکر کرده
861
00:34:48,079 –> 00:34:50,320
و با خودش می گوید خوب است، بنابراین من این
862
00:34:50,320 –> 00:34:52,719
ویژگی را در اینجا ندارم، زیرا این
863
00:34:52,719 –> 00:34:54,639
یک ویژگی نیست که به من اختصاص داده شده است
864
00:34:54,639 –> 00:34:56,639
. من سعی خواهم کرد آن را
865
00:34:56,639 –> 00:34:58,640
از سطح نمونه جستجو کنم و سپس
866
00:34:58,640 –> 00:35:01,040
آن را پیدا کنم و دوباره آن را چاپ کنم تا
867
00:35:01,040 –> 00:35:03,200
دقیقاً همان چیزی باشد که در اینجا اتفاق می افتد
868
00:35:03,200 –> 00:35:06,400
مورد 1 و مورد 2 مواردی هستند
869
00:35:06,400 –> 00:35:09,280
که نتوانستند ویژگی نرخ پرداخت را
870
00:35:09,280 –> 00:35:12,079
در نمونه پیدا کنند سطح، بنابراین هر دوی آنها
871
00:35:12,079 –> 00:35:14,640
جلو رفتند و سعی کردند این ویژگی را
872
00:35:14,640 –> 00:35:17,119
از سطح کلاس بیاورند و از آنجایی که واقعاً
873
00:35:17,119 –> 00:35:18,880
در سطح کلاس وجود دارد، ما اکنون
874
00:35:18,880 –> 00:35:20,880
توانستیم به آنها دسترسی داشته باشیم تا حتی به
875
00:35:20,880 –> 00:35:23,040
شما ایده بهتری از آنچه
876
00:35:23,040 –> 00:35:24,960
اینجا میگذرد ارائه دهیم. اکنون می خواهم یک کار
877
00:35:24,960 –> 00:35:27,119
اضافی دیگر انجام دهم، این
878
00:35:27,119 –> 00:35:29,599
اولین خط چاپی را حذف می کنم و ادامه می دهم و
879
00:35:29,599 –> 00:35:31,760
آن ویژگی ها را از اینجا نیز حذف می کنم،
880
00:35:31,760 –> 00:35:35,040
اکنون یک ویژگی جادویی داخلی وجود دارد
881
00:35:35,040 –> 00:35:37,599
نه یک روش جادویی که می
882
00:35:37,599 –> 00:35:39,599
توانید جلو بروید و همه را ببینید. صفاتی
883
00:35:39,599 –> 00:35:41,920
که به آن تعلق دارند g به آن
884
00:35:41,920 –> 00:35:45,280
شی خاص و این امر با استفاده از
885
00:35:45,280 –> 00:35:49,040
این زیرخط دوتایی
886
00:35:49,040 –> 00:35:52,160
887
00:35:52,160 –> 00:35:53,839
888
00:35:53,839 –> 00:35:56,000
889
00:35:56,000 –> 00:35:57,920
890
00:35:57,920 –> 00:36:00,160
قابل دستیابی است. من
891
00:36:00,160 –> 00:36:01,280
ادامه میدهم و
892
00:36:01,280 –> 00:36:03,280
این یکی را کپی میکنم و آن را برای
893
00:36:03,280 –> 00:36:05,760
سطح نمونه نیز جایگذاری
894
00:36:05,760 –> 00:36:08,800
میکنم، بنابراین باید تمام ویژگیهای سطح کلاس را به من بدهد
895
00:36:08,800 –> 00:36:09,760
896
00:36:09,760 –> 00:36:11,760
و خط دوم
897
00:36:11,760 –> 00:36:14,079
باید این کار را برای
898
00:36:14,079 –> 00:36:16,320
سطح نمونه انجام دهد، و اگر قرار بود آن را
899
00:36:16,320 –> 00:36:19,040
اجرا کنم، پس بیایید برای یک ثانیه نتایج را بررسی کنیم،
900
00:36:19,040 –> 00:36:21,520
اکنون می توانید ببینید که در
901
00:36:21,520 –> 00:36:24,160
خط اول ما این ویژگی نرخ پرداخت را می بینیم
902
00:36:24,160 –> 00:36:26,560
، اما در خط دوم
903
00:36:26,560 –> 00:36:28,720
هرگز آن را نمی بینیم، نام قیمت و
904
00:36:28,720 –> 00:36:31,200
مقدار را می بینیم و همچنین می توانید توجه داشته باشید
905
00:36:31,200 –> 00:36:33,119
که این ویژگی جادویی در واقع
906
00:36:33,119 –> 00:36:35,359
مسئول است. برای گرفتن همه ویژگی ها
907
00:36:35,359 –> 00:36:37,680
و تبدیل آن به یک فرهنگ لغت و
908
00:36:37,680 –> 00:36:39,520
از
909
00:36:39,520 –> 00:36:41,119
آنجاست که کلمه کلیدی که از آن می آید فقط یک
910
00:36:41,119 –> 00:36:43,680
نسخه کوتاه شده از یک فرهنگ لغت است،
911
00:36:43,680 –> 00:36:45,680
بنابراین یک ویژگی جادویی بسیار مفید است
912
00:36:45,680 –> 00:36:47,520
که yo میتوانید ادامه دهید و اگر میخواهید
913
00:36:47,520 –> 00:36:49,359
914
00:36:49,359 –> 00:36:51,680
بهدلیل اشکالزدایی بهطور موقت همه ویژگیهایی را
915
00:36:51,680 –> 00:36:54,079
که به فلان شی تعلق دارند، ببینید، استفاده کنید،
916
00:36:54,079 –> 00:36:56,079
بنابراین اکنون که این را فهمیدیم،
917
00:36:56,079 –> 00:36:57,760
بیایید آن
918
00:36:57,760 –> 00:36:59,599
را به یک مثال واقعی ببریم و روشی را ارائه کنیم.
919
00:36:59,599 –> 00:37:02,000
ادامه دهید و
920
00:37:02,000 –> 00:37:04,640
روی قیمت اقلام خود تخفیف اعمال کنید تا با
921
00:37:04,640 –> 00:37:06,880
ایجاد روشی که متعلق به
922
00:37:06,880 –> 00:37:09,040
هر یک از نمونه های ما باشد و این بدان معنی است
923
00:37:09,040 –> 00:37:10,880
که ما می توانیم پیش برویم و
924
00:37:10,880 –> 00:37:13,839
روشی را ارائه کنیم که بتوانیم نام آن را اعمال تخفیف کنیم،
925
00:37:13,839 –> 00:37:15,839
پس بیایید برویم پیش بروید و روی این کار را شروع
926
00:37:15,839 –> 00:37:18,400
کنید، بنابراین میخواهم بگویم که تخفیف را اعمال کنید
927
00:37:18,400 –> 00:37:20,320
و توجه داشته باشید که من
928
00:37:20,320 –> 00:37:23,040
از یک روش جدید در یک کلاس در اینجا استفاده
929
00:37:23,040 –> 00:37:23,760
930
00:37:23,760 –> 00:37:26,800
میکنم، بنابراین دقیقاً در داخل آن، ابتدا
931
00:37:26,800 –> 00:37:29,040
باید بفهمیم که چگونه میخواهیم
932
00:37:29,040 –> 00:37:31,280
لغو کنیم. یک ویژگی که متعلق
933
00:37:31,280 –> 00:37:33,520
به یک نمونه است و ما قبلاً میدانیم که
934
00:37:33,520 –> 00:37:35,680
میتوانیم آن را با کلمه کلیدی self انجام دهیم، بنابراین قیمت
935
00:37:35,680 –> 00:37:37,599
آن self
936
00:37:37,599 –> 00:37:39,040
dot
937
00:37:39,040 –> 00:37:41,599
خواهد بود و برابر با self.price خواهد بود، به
938
00:37:41,599 –> 00:37:43,920
این معنی که مقدار قدیمیتر این
939
00:37:43,920 –> 00:37:45,280
ویژگی
940
00:37:45,280 –> 00:37:49,839
در نرخ پرداخت اکنون ضرب میشود. تو میگ ht
941
00:37:49,839 –> 00:37:51,520
انتظار داریم که بتوانیم مستقیماً به آن دسترسی
942
00:37:51,520 –> 00:37:53,920
داشته باشیم، اما اگر به یاد داشته باشید
943
00:37:53,920 –> 00:37:56,000
که در واقع متعلق به
944
00:37:56,000 –> 00:37:58,480
خود کلاس آیتم است، اکنون ممکن است گیج کننده باشد
945
00:37:58,480 –> 00:38:01,040
زیرا این روش از قبل در این
946
00:38:01,040 –> 00:38:03,200
کلاس قرار دارد، بنابراین ممکن است فکر کنید که
947
00:38:03,200 –> 00:38:05,359
می توانید مستقیماً با گفتن نرخ پرداخت به آن دسترسی داشته باشید.
948
00:38:05,359 –> 00:38:07,359
زیرا قبلاً در داخل
949
00:38:07,359 –> 00:38:09,359
کلاس است اما در واقع کار نمی
950
00:38:09,359 –> 00:38:11,520
کند زیرا همانطور که قبلاً فهمیدیم می توانید
951
00:38:11,520 –> 00:38:13,520
از سطح کلاس یا سطح نمونه به آن دسترسی داشته باشید
952
00:38:13,520 –> 00:38:15,599
بنابراین
953
00:38:15,599 –> 00:38:18,480
می توانم ادامه دهم و بگویم نرخ پرداخت نقطه ای مورد
954
00:38:18,480 –> 00:38:20,480
مانند آن و در آنجا دارید روشی
955
00:38:20,480 –> 00:38:22,960
که میتواند ادامه یابد و اساساً
956
00:38:22,960 –> 00:38:25,520
ویژگی قیمت را برای یکی از آیتمهای شما لغو
957
00:38:25,520 –> 00:38:28,720
کند تا به شما نشان دهد که این کار میکند،
958
00:38:28,720 –> 00:38:31,920
پس من در حال حاضر فقط میتوانم از یک نمونه استفاده کنم
959
00:38:31,920 –> 00:38:34,480
و میتوانم ادامه دهم و با این روش تماس بگیرم،
960
00:38:34,480 –> 00:38:38,640
مثلاً تخفیف اعمال کنم و همچنین میتوانم
961
00:38:38,640 –> 00:38:41,680
اکنون سعی کنید ویژگی قیمت را
962
00:38:41,680 –> 00:38:43,280
برای این مورد
963
00:38:43,280 –> 00:38:46,480
یک چاپ کنید و ما باید 80 را درست ببینیم، بنابراین اگر قرار
964
00:38:46,480 –> 00:38:48,560
بود آن را اجرا کنیم،
965
00:38:48,560 –> 00:38:51,040
خواهیم دید که 80.0 را همانطور که انتظار می رود دریافت خواهیم کرد،
966
00:38:51,040 –> 00:38:53,280
اکنون نباید این گزینه را فراموش
967
00:38:53,280 –> 00:38:55,200
کنید که ممکن است بخواهید
968
00:38:55,200 –> 00:38:57,599
برای یک کالای خاص مقدار تخفیف متفاوتی داشته باشید،
969
00:38:57,599 –> 00:39:00,240
بنابراین بگویید که یک روز
970
00:39:00,240 –> 00:39:03,520
20 کالا خواهید داشت و فقط برای لپ تاپ
971
00:39:03,520 –> 00:39:06,640
می خواهید 30 تخفیف داشته باشید، اما
972
00:39:06,640 –> 00:39:08,960
ایده بدی است. تغییر
973
00:39:08,960 –> 00:39:12,000
صفت کلاس به 0.7 زیرا
974
00:39:12,000 –> 00:39:14,079
بر تمام مواردی که در
975
00:39:14,079 –> 00:39:16,079
حال حاضر در دست دارید تأثیر می گذارد، بنابراین کاری که می توانید انجام دهید این
976
00:39:16,079 –> 00:39:18,800
است که می توانید این ویژگی را
977
00:39:18,800 –> 00:39:21,280
مستقیماً به یکی از مواردی که
978
00:39:21,280 –> 00:39:22,720
می خواهید
979
00:39:22,720 –> 00:39:25,119
مقدار تخفیف متفاوتی برای آن داشته باشید اختصاص دهید. بنابراین بیایید جلوتر برویم
980
00:39:25,119 –> 00:39:27,040
و یک مثال برای این کار ببینیم، بنابراین
981
00:39:27,040 –> 00:39:29,440
به خودم اجازه میدهم که مورد
982
00:39:29,440 –> 00:39:33,200
لپتاپ را برگردانم و سپس کاری که میتوانم برای اعمال
983
00:39:33,200 –> 00:39:36,880
30 تخفیف برای این کالا انجام دهم این است
984
00:39:36,880 –> 00:39:39,680
که دقیقاً همان ویژگی را به نمونه اختصاص دهم
985
00:39:39,680 –> 00:39:41,839
تا بتوانم ادامه دهم. و از ابزار آیتمی استفاده کنید.
986
00:39:41,839 –> 00:39:43,839
Dot pay در نرخ امتیاز
987
00:39:43,839 –> 00:39:45,320
برابر با
988
00:39:45,320 –> 00:39:48,880
0.7 است، اکنون آنچه در اینجا اتفاق می افتد این است که
989
00:39:48,880 –> 00:39:51,920
برای مورد 2 ویژگی
990
00:39:51,920 –> 00:39:54,640
نرخ پرداخت را در سطح نمونه پیدا می کند بنابراین مورد 2
991
00:39:54,640 –> 00:39:56,240
واقعاً مجبور نیست به
992
00:39:56,240 –> 00:39:58,800
کلاس بروید. سطح و بازگرداندن ارزش
993
00:39:58,800 –> 00:40:01,119
نرخ پرداخت زیرا در نگاه اول قرار است
994
00:40:01,119 –> 00:40:03,520
آن را در سطح نمونه پیدا کند،
995
00:40:03,520 –> 00:40:05,520
اما برای مورد 1 متفاوت است،
996
00:40:05,520 –> 00:40:08,079
همچنان از سطح آیتم
997
00:40:08,079 –> 00:40:10,480
که 0.8 خواهد بود خوانده می شود،
998
00:40:10,480 –> 00:40:14,480
بنابراین اکنون اگر می خواهیم از آن استفاده کنیم. آیتم دو
999
00:40:14,480 –> 00:40:17,680
نقطه تخفیف اعمال کنید و همچنین
1000
00:40:17,680 –> 00:40:21,520
قیمت را اکنون چاپ کنید سپس ببینیم
1001
00:40:21,520 –> 00:40:24,640
چه اتفاقی می افتد بنابراین من
1002
00:40:24,640 –> 00:40:27,680
این خط را کامنت نمی گذارم تا فعلاً این چاپ را نبینم
1003
00:40:27,680 –> 00:40:29,359
و ادامه می دهم و برنامه خود را اجرا می کنم
1004
00:40:29,359 –> 00:40:32,960
اکنون می توانید ببینید که ما
1005
00:40:32,960 –> 00:40:35,760
هنوز دریافت می کنیم 800
1006
00:40:35,760 –> 00:40:38,000
و این به چه معناست که
1007
00:40:38,000 –> 00:40:40,400
تخفیفی که اعمال شده است هنوز
1008
00:40:40,400 –> 00:40:41,839
20 است
1009
00:40:41,839 –> 00:40:44,319
و از کجا می آید خوب
1010
00:40:44,319 –> 00:40:47,680
این از این روش می آید اینجا که
1011
00:40:47,680 –> 00:40:50,400
مهم نیست که ما هر چه سعی می کنیم نرخ پرداخت را
1012
00:40:50,400 –> 00:40:52,960
از سطح کلاس بیرون بیاوریم، بنابراین بهترین روش است.
1013
00:40:52,960 –> 00:40:56,720
در اینجا این است که این را به خود تغییر دهیم و
1014
00:40:56,720 –> 00:40:59,440
اگر نرخ پرداخت را
1015
00:40:59,440 –> 00:41:01,680
برای سطح نمونه بازنویسی کنیم،
1016
00:41:01,680 –> 00:41:04,640
از سطح نمونه خوانده می شود، اما برای
1017
00:41:04,640 –> 00:41:08,160
مورد یک اگر سعی کنیم به نرخ پرداخت از سطح نمونه دسترسی داشته باشیم،
1018
00:41:08,160 –> 00:41:10,960
1019
00:41:10,960 –> 00:41:13,599
این هنوز هم عالی است زیرا w e
1020
00:41:13,599 –> 00:41:16,079
نرخ پرداخت خاصی را برای مورد یک تعیین نکرده است، بنابراین
1021
00:41:16,079 –> 00:41:17,680
1022
00:41:17,680 –> 00:41:20,880
اکنون اگر بخواهیم آن را اجرا کنیم،
1023
00:41:20,880 –> 00:41:22,560
آن را از سطح کلاس خارج می کند، اکنون خواهید دید که ما
1024
00:41:22,560 –> 00:41:25,599
نتایج مورد انتظار را داشته ایم و اگر قرار باشد نظر خود را نیز
1025
00:41:25,599 –> 00:41:28,079
لغو کنیم. اولین خط چاپ برای
1026
00:41:28,079 –> 00:41:31,440
آیتم یک و برنامه ما را دوباره اجرا کنید، سپس
1027
00:41:31,440 –> 00:41:34,160
می بینید که برای مورد یک بیست
1028
00:41:34,160 –> 00:41:37,040
درصد تخفیف داشتیم و برای مورد دوم
1029
00:41:37,040 –> 00:41:39,200
سی درصد تخفیف داشتیم، بنابراین وقتی نوبت
1030
00:41:39,200 –> 00:41:41,920
به دسترسی به ویژگی های کلاس می رسد، ممکن است
1031
00:41:41,920 –> 00:41:44,319
بخواهید تجدید نظر کنید که چگونه می خواهید. برای
1032
00:41:44,319 –> 00:41:46,079
دسترسی به آنها زمانی که به
1033
00:41:46,079 –> 00:41:48,800
روشهایی دست پیدا میکنید و بهطور خاص برای ایجاد
1034
00:41:48,800 –> 00:41:51,359
روشی مانند اعمال تخفیف،
1035
00:41:51,359 –> 00:41:53,200
دسترسی به آن از سطح نمونه ایده خوبی است،
1036
00:41:53,200 –> 00:41:55,760
بنابراین امکان
1037
00:41:55,760 –> 00:41:58,800
استفاده از نرخ پرداختی را که به سطح نمونه اختصاص داده میشود نیز
1038
00:41:58,800 –> 00:42:00,880
مجاز است. بنابراین اکنون
1039
00:42:00,880 –> 00:42:02,400
که کاملاً در مورد
1040
00:42:02,400 –> 00:42:04,079
تفاوت بین ویژگی کلاس دو و
1041
00:42:04,079 –> 00:42:06,079
نمونه فهمیدیم، بیایید
1042
00:42:06,079 –> 00:42:08,480
به مبحث بعدی برویم، اکنون می بینید
1043
00:42:08,480 –> 00:42:10,400
که من خطوط چاپی را که در
1044
00:42:10,400 –> 00:42:12,640
پایین داشتم حذف کرده ام و به پنج رسیدم.
1045
00:42:12,640 –> 00:42:14,880
نمونههایی که من در اینجا ایجاد کردهام،
1046
00:42:14,880 –> 00:42:16,880
بنابراین ممکن است بخواهید فوراً آن پنج نمونه را ایجاد کنید
1047
00:42:16,880 –> 00:42:19,520
، به همین دلیل است که
1048
00:42:19,520 –> 00:42:21,440
به شما توصیه میکنم با
1049
00:42:21,440 –> 00:42:23,839
دسترسی
1050
00:42:23,839 –> 00:42:26,000
به فهرست ویژگیهای کلاس و سپس تکههای کد، به مخزن من بروید
1051
00:42:26,000 –> 00:42:27,920
و سپس
1052
00:42:27,920 –> 00:42:30,400
پیش بروید و کد را کپی کنید. این
1053
00:42:30,400 –> 00:42:33,359
پنج فایل زیرخط آیتم.py خوب است، بنابراین
1054
00:42:33,359 –> 00:42:35,520
با توجه به موقعیتی که
1055
00:42:35,520 –> 00:42:37,359
فروشگاه شما در آینده بزرگتر خواهد شد،
1056
00:42:37,359 –> 00:42:39,040
به این معنی که شما اقلام بیشتری خواهید داشت و هر چه
1057
00:42:39,040 –> 00:42:41,280
موارد
1058
00:42:41,280 –> 00:42:43,680
بیشتری داشته باشید، فیلتراسیون بیشتری مانند
1059
00:42:43,680 –> 00:42:46,079
چیزهایی که می خواهید داشته باشید. در آینده انجام دهیم،
1060
00:42:46,079 –> 00:42:47,920
اما آنچه در حال حاضر برای
1061
00:42:47,920 –> 00:42:50,240
کلاس ما مشکل ساز است این واقعیت است که ما
1062
00:42:50,240 –> 00:42:52,480
هیچ منبعی نداریم که بتوانیم به
1063
00:42:52,480 –> 00:42:54,400
همه مواردی که در حال حاضر در فروشگاه خود داریم دسترسی داشته
1064
00:42:54,400 –> 00:42:56,960
باشیم،
1065
00:42:56,960 –> 00:42:58,480
اگر می توانستیم به نحوی بهتر باشد.
1066
00:42:58,480 –> 00:43:01,200
فهرستی با تمام نمونههای آیتمهایی
1067
00:43:01,200 –> 00:43:03,520
که تا این لحظه ایجاد شدهاند داشته باشید،
1068
00:43:03,520 –> 00:43:05,920
اما در حال حاضر رویکردی وجود ندارد
1069
00:43:05,920 –> 00:43:08,480
که به ما فهرستی با پنج
1070
00:43:08,480 –> 00:43:10,880
عنصر بدهد که در آن هر عنصر
1071
00:43:10,880 –> 00:43:13,760
یک insta را نشان دهد.
1072
00:43:13,760 –> 00:43:16,560
بنابراین برای ایجاد چنین طرحی،
1073
00:43:16,560 –> 00:43:18,720
در اینجا یک نامزد فوق العاده برای
1074
00:43:18,720 –> 00:43:21,280
ایجاد یک ویژگی کلاس وجود دارد که می توانیم
1075
00:43:21,280 –> 00:43:24,560
همه آنها را نامگذاری کنیم و هنگامی که این کار را انجام دادیم،
1076
00:43:24,560 –> 00:43:26,560
خواهیم دید که چگونه می خواهیم نمونه های خود را به آن اضافه کنیم.
1077
00:43:26,560 –> 00:43:29,359
آن لیست را ادامه می دهم
1078
00:43:29,359 –> 00:43:34,240
و با رفتن به اینجا شروع می کنم و از یک
1079
00:43:34,240 –> 00:43:36,480
ویژگی قدیمی استفاده می کنم تا
1080
00:43:36,480 –> 00:43:37,760
همه آن ها
1081
00:43:37,760 –> 00:43:41,200
برابر با یک لیست خالی باشد، اکنون باید
1082
00:43:41,200 –> 00:43:44,240
بفهمیم که چگونه می خواهیم
1083
00:43:44,240 –> 00:43:46,640
نمونه های خود را برای هر بار که
1084
00:43:46,640 –> 00:43:48,880
می خواهیم اضافه کنیم پیش بروید و اکنون یک نمونه ایجاد کنید،
1085
00:43:48,880 –> 00:43:51,119
اگر به خاطر دارید که
1086
00:43:51,119 –> 00:43:54,160
متد دوتایی زیرخط اولیه
1087
00:43:54,160 –> 00:43:56,800
بلافاصله پس از ایجاد نمونه فراخوانی میشود
1088
00:43:56,800 –> 00:44:00,319
، بنابراین ممکن است ایده فوقالعادهای باشد
1089
00:44:00,319 –> 00:44:02,400
که در زیر این
1090
00:44:02,400 –> 00:44:05,520
متد init دوتایی زیرخط پایین بیایید و از کدی استفاده کنید
1091
00:44:05,520 –> 00:44:07,760
که مسئول الحاق است.
1092
00:44:07,760 –> 00:44:10,160
هر بار که نمونهای را ایجاد میکنیم، به آن لیست میرویم
1093
00:44:10,160 –> 00:44:12,640
و این کار به آسانی
1094
00:44:12,640 –> 00:44:15,040
گفتن چیزی مانند زیر خواهد بود، بنابراین
1095
00:44:15,040 –> 00:44:16,880
ابتدا میتوانید توجه داشته باشید که من
1096
00:44:16,880 –> 00:44:18,880
در واقع برخی از دستورات را در این
1097
00:44:18,880 –> 00:44:21,119
تابع دو خط زیر خط ابتدایی مانند run
1098
00:44:21,119 –> 00:44:24,160
val نوشتم. idations و انتساب به خود شیء، بنابراین
1099
00:44:24,160 –> 00:44:25,839
ممکن است ایده خوبی باشد که با یک
1100
00:44:25,839 –> 00:44:29,040
نظر در اینجا شروع کنیم که می گوید اقداماتی
1101
00:44:29,040 –> 00:44:31,280
برای اجرا فقط برای اینکه واقعاً یک
1102
00:44:31,280 –> 00:44:33,040
جدایی بزرگ بین کارهای مختلفی
1103
00:44:33,040 –> 00:44:35,440
که انجام می دهیم وجود داشته باشد بنابراین در اینجا
1104
00:44:35,440 –> 00:44:36,960
می توانم بگویم
1105
00:44:36,960 –> 00:44:39,680
نقطه مورد همه. و می توانید ببینید که من
1106
00:44:39,680 –> 00:44:42,560
ابتدا از شی کلاس استفاده می کنم و سپس آن یک
1107
00:44:42,560 –> 00:44:44,319
لیست است، بنابراین می توانم از
1108
00:44:44,319 –> 00:44:47,839
dot append استفاده کنم و سپس من فقط شی self را اضافه می کنم،
1109
00:44:47,839 –> 00:44:51,200
اکنون می دانیم که self در
1110
00:44:51,200 –> 00:44:53,359
واقع خود نمونه است هر بار
1111
00:44:53,359 –> 00:44:56,800
که ایجاد می شود. هنگامی که به
1112
00:44:56,800 –> 00:44:59,359
جلو برویم و چنین دستوری را در داخل
1113
00:44:59,359 –> 00:45:02,720
تابع init اجرا کنیم، برای هر نمونه ای
1114
00:45:02,720 –> 00:45:05,359
که قرار است ایجاد شود، این
1115
00:45:05,359 –> 00:45:07,599
لیست کامل با نمونه های ما پر می
1116
00:45:07,599 –> 00:45:10,240
شود تا به شما نشان دهیم که می توانم
1117
00:45:10,240 –> 00:45:12,960
بعد از ایجاد
1118
00:45:12,960 –> 00:45:16,079
نمونه ها، یک خط بپرم و میتوانیم
1119
00:45:16,079 –> 00:45:21,280
بگوییم همه موارد را پرینت کنید، و حالا اگر قرار بود برنامهمان را
1120
00:45:21,280 –> 00:45:23,119
اجرا کنم،
1121
00:45:23,119 –> 00:45:25,040
میبینیم که فهرستی با پنج
1122
00:45:25,040 –> 00:45:28,160
نمونه خواهیم داشت، اگر بخواهم کمی به سمت راست اسکرول کنم،
1123
00:45:28,160 –> 00:45:30,000
میبینیم که من دقیقاً
1124
00:45:30,000 –> 00:45:33,200
پنج مورد دارم. عناصر و اینکه i اگر
1125
00:45:33,200 –> 00:45:35,280
1126
00:45:35,280 –> 00:45:37,200
میخواهید کاری را تنها با یکی
1127
00:45:37,200 –> 00:45:39,920
از ویژگیهای نمونههای خود انجام دهید، بسیار مفید خواهد بود، بنابراین
1128
00:45:39,920 –> 00:45:41,839
بگویید که میخواهید همه
1129
00:45:41,839 –> 00:45:44,720
نامها را برای همه نمونههای خود چاپ کنید، سپس
1130
00:45:44,720 –> 00:45:47,040
میتوانید به راحتی از یک حلقه for برای رسیدن به هدف استفاده کنید.
1131
00:45:47,040 –> 00:45:49,599
چنین کاری، بنابراین ما میتوانیم ادامه دهیم و مثلاً
1132
00:45:49,599 –> 00:45:50,480
1133
00:45:50,480 –> 00:45:51,599
1134
00:45:51,599 –> 00:45:52,480
در
1135
00:45:52,480 –> 00:45:56,079
آیتم نقطه همه بگوییم، و شما میتوانید بگویید
1136
00:45:56,079 –> 00:45:59,200
نام نقطه را چاپ کنید و وقتی به این رسیدیم،
1137
00:45:59,200 –> 00:46:01,200
میتوانید ببینید که
1138
00:46:01,200 –> 00:46:03,200
همه نامها را برای همه نمونههایی که
1139
00:46:03,200 –> 00:46:05,280
ایجاد کردهایم داریم. این در
1140
00:46:05,280 –> 00:46:07,599
اینجا و آنجا مفید خواهد بود، به خصوص اگر می
1141
00:46:07,599 –> 00:46:09,680
دانید چگونه از تابع فیلتر استفاده کنید، به
1142
00:46:09,680 –> 00:46:12,560
عنوان مثال، برخی موارد خاص را در
1143
00:46:12,560 –> 00:46:14,480
برخی از نمونه هایی که با
1144
00:46:14,480 –> 00:46:16,960
معیارهای شما مطابقت دارند، به خوبی اعمال کنید، بنابراین اکنون که ما
1145
00:46:16,960 –> 00:46:19,520
این را فهمیدیم، بیایید به آن نیز
1146
00:46:19,520 –> 00:46:21,520
توجه کنیم. یک مشکلی که
1147
00:46:21,520 –> 00:46:24,880
قبلاً در حال حاضر مشاهده کردیم اگر قرار بود
1148
00:46:24,880 –> 00:46:26,160
چند بار از ctrl z
1149
00:46:26,160 –> 00:46:29,200
استفاده کنم و همچنان از این آیتم چاپی استفاده کنم. همه
1150
00:46:29,200 –> 00:46:32,480
اکنون می توانید ببینید که نحوه
1151
00:46:32,480 –> 00:46:35,599
نمایش شیء خیلی
1152
00:46:35,599 –> 00:46:37,920
دوستانه نیست و اکنون می تواند nic باشد. اگر
1153
00:46:37,920 –> 00:46:40,560
بتوانیم به نحوی نحوه نمایش
1154
00:46:40,560 –> 00:46:44,160
شی در این لیست را
1155
00:46:44,160 –> 00:46:46,240
در اینجا تغییر دهیم، در واقع راهی برای
1156
00:46:46,240 –> 00:46:49,119
رسیدن به این هدف با استفاده از یک متد جادویی
1157
00:46:49,119 –> 00:46:51,760
در داخل کلاس ما وجود دارد، اکنون یک متد جادویی وجود دارد
1158
00:46:51,760 –> 00:46:53,680
که به آن
1159
00:46:53,680 –> 00:46:57,680
دو خط زیر خط می گویند و repr مخفف آن است.
1160
00:46:57,680 –> 00:47:00,880
نشان دادن اشیاء خود به
1161
00:47:00,880 –> 00:47:03,520
همین دلیل است که می توانید از
1162
00:47:03,520 –> 00:47:05,760
این روش جادویی استفاده کنید و
1163
00:47:05,760 –> 00:47:08,960
سپس کنترل نمایش اشیاء خود را در
1164
00:47:08,960 –> 00:47:11,440
هنگام چاپ آنها در کنسول خواهید داشت،
1165
00:47:11,440 –> 00:47:13,599
اکنون در واقع توصیه می کنم ویدیویی را تماشا کنید
1166
00:47:13,599 –> 00:47:16,000
که بین روشی مقایسه می شود.
1167
00:47:16,000 –> 00:47:17,920
شبیه به آن که به آن دو
1168
00:47:17,920 –> 00:47:20,640
خط زیر خط می گویند و می توانید
1169
00:47:20,640 –> 00:47:22,960
به توضیحات کل این سری نگاهی بیندازید
1170
00:47:22,960 –> 00:47:24,960
تا در واقع ویدیویی را که من در مورد آن صحبت می کنم تماشا کنید،
1171
00:47:24,960 –> 00:47:26,960
بنابراین بیایید
1172
00:47:26,960 –> 00:47:29,280
جلو برویم و از روش تعمیر استفاده
1173
00:47:29,280 –> 00:47:31,119
کنیم تا بفهمیم این کار چگونه است. برای کار کردن، بنابراین
1174
00:47:31,119 –> 00:47:33,760
من میخواهم در کلاس خود بگویم def
1175
00:47:33,760 –> 00:47:36,480
و از آندرخط دوبل استفاده میکنم
1176
00:47:36,480 –> 00:47:40,319
1177
00:47:40,319 –> 00:47:43,440
1178
00:47:43,440 –> 00:47:46,640
.
1179
00:47:46,640 –> 00:47:49,440
1180
00:47:49,440 –> 00:47:51,839
بدیهی است که ما نمیخواهیم از
1181
00:47:51,839 –> 00:47:54,559
چیزی استفاده کنیم که برای هر یک از نمونهها منحصربهفرد نیست، رشتهای را که مسئول نمایش این شی خواهد بود، استفاده کنیم،
1182
00:47:54,559 –> 00:47:57,040
زیرا میگوییم که من
1183
00:47:57,040 –> 00:48:00,000
اکنون از آن استفاده میکردم، چیزی شبیه به آن را برگردانم
1184
00:48:00,000 –> 00:48:01,119
و
1185
00:48:01,119 –> 00:48:03,200
برنامه ما را اجرا کنید، سپس میتوانید ببینید که
1186
00:48:03,200 –> 00:48:05,599
من قرار است یک لیست با این
1187
00:48:05,599 –> 00:48:08,079
رشته را پنج بار دریافت کنم، اما تشخیص اینکه
1188
00:48:08,079 –> 00:48:09,760
1189
00:48:09,760 –> 00:48:10,640
کدام
1190
00:48:10,640 –> 00:48:14,079
نمونه هر رشته را در اینجا نشان می دهد
1191
00:48:14,079 –> 00:48:16,240
دشوار است، بنابراین اگر بخواهیم
1192
00:48:16,240 –> 00:48:18,800
رشته ای را برگردانیم که می تواند منحصر به فرد باشد، می تواند مفید باشد.
1193
00:48:18,800 –> 00:48:21,839
کنسول را در اینجا ببندید و به اینجا بروید
1194
00:48:21,839 –> 00:48:24,240
و از یک رشته فرمت شده استفاده کنید
1195
00:48:24,240 –> 00:48:26,480
و به منظور منحصربهفرد کردن آن،
1196
00:48:26,480 –> 00:48:29,440
نشان دادن آن دقیقاً
1197
00:48:29,440 –> 00:48:32,319
همانطور که نمونهای را ایجاد
1198
00:48:32,319 –> 00:48:35,040
میکنیم بهترین روش است، بنابراین کاری که من در اینجا انجام میدهم این
1199
00:48:35,040 –> 00:48:38,240
است که مورد و از
1200
00:48:38,240 –> 00:48:41,440
بازکننده براکت ها و بسته شدن استفاده کنید و
1201
00:48:41,440 –> 00:48:44,160
سپس رشته برگشتی را در اینجا
1202
00:48:44,160 –> 00:48:47,040
تا آنجا که ممکن است با روشی
1203
00:48:47,040 –> 00:48:48,400
که
1204
00:48:48,400 –> 00:48:52,079
آن نمونه ها را ایجاد می کنیم برابر کنم، بنابراین با
1205
00:48:52,079 –> 00:48:55,119
تایپ کردن نقل قول های تکی در اینجا شروع می کنم تا از
1206
00:48:55,119 –> 00:48:57,119
گیومه های دوگانه فرار کنم. که از اینجا می آیند
1207
00:48:57,119 –> 00:49:00,240
و من
1208
00:49:00,240 –> 00:49:04,800
با استفاده از self.name به ارزش نام اشاره
1209
00:49:04,800 –> 00:49:07,839
می کنم و سپس تک نقل قول های خود را می گذارم و
1210
00:49:07,839 –> 00:49:09,040
از یک
1211
00:49:09,040 –> 00:49:11,680
کاما مانند آن استفاده می کنم و سپس ادامه می دهم
1212
00:49:11,680 –> 00:49:15,040
و به مقدار ما اشاره می کنم. قیمت
1213
00:49:15,040 –> 00:49:18,800
من از یک کاما دیگر استفاده می کنم و اکنون می گویم
1214
00:49:18,800 –> 00:49:20,720
self.quantity
1215
00:49:20,720 –> 00:49:24,240
اگر دوباره برنامه خود را اجرا کنیم،
1216
00:49:24,240 –> 00:49:27,359
می بینید که اکنون
1217
00:49:27,359 –> 00:49:30,160
لیستی دریافت می کنیم که بسیار دوستانه
1218
00:49:30,160 –> 00:49:32,640
تر از آنچه قبلا دیده ایم است و
1219
00:49:32,640 –> 00:49:35,359
همچنین می توانید ببینید که
1220
00:49:35,359 –> 00:49:38,000
به عنوان مثال، این عنصر اول کاملاً
1221
00:49:38,000 –> 00:49:41,040
معادل این خط در اینجا است، اکنون
1222
00:49:41,040 –> 00:49:44,240
ممکن است کنجکاو باشید که چرا من آنقدر سخت کار کردم
1223
00:49:44,240 –> 00:49:47,359
تا نسخه نماینده
1224
00:49:47,359 –> 00:49:50,240
اشیاء خود را به همان روشی که آنها را ایجاد می کنیم، برگردانم،
1225
00:49:50,240 –> 00:49:51,839
بنابراین این فقط بهترین روش
1226
00:49:51,839 –> 00:49:53,839
مطابق با اسناد پایتون است
1227
00:49:53,839 –> 00:49:55,760
زیرا
1228
00:49:55,760 –> 00:49:58,559
فقط با
1229
00:49:58,559 –> 00:50:01,040
تلاش کپی و چسباندن آن در یک
1230
00:50:01,040 –> 00:50:03,119
کنسول پایتون به ما کمک می کند تا فوراً نمونه هایی ایجاد کنیم، بنابراین اگر همین الان به آن فکر کنید،
1231
00:50:03,119 –> 00:50:06,079
اگر یک کنسول پایتون را باز کنید و
1232
00:50:06,079 –> 00:50:08,640
این کلاس را وارد کنید، به
1233
00:50:08,640 –> 00:50:10,880
آسانی گرفتن آن
1234
00:50:10,880 –> 00:50:13,520
و چسباندن به کنسول پایتون و
1235
00:50:13,520 –> 00:50:15,040
سپس شما یک نمونه در حال
1236
00:50:15,040 –> 00:50:17,359
ایجاد خواهید داشت، بنابراین این تنها دلیلی است
1237
00:50:17,359 –> 00:50:19,599
که من این رویکرد را ارائه کرده ام
1238
00:50:19,599 –> 00:50:21,520
و همچنین مطمئناً فقط می
1239
00:50:21,520 –> 00:50:24,319
خواستم یک رشته منحصر به فرد را برگردانم که واقعاً
1240
00:50:24,319 –> 00:50:26,880
نمونه ما را نشان می دهد و می توانید ببینید
1241
00:50:26,880 –> 00:50:29,520
شناسایی
1242
00:50:29,520 –> 00:50:32,960
نمونههای کلاس ما با این لیست
1243
00:50:32,960 –> 00:50:35,200
و با این رویکرد بسیار آسان است، بنابراین
1244
00:50:35,200 –> 00:50:37,119
تا اینجا فهمیدیم که چگونه میتوانیم نحوه
1245
00:50:37,119 –> 00:50:39,680
نمایش اشیاء خود را تغییر دهیم
1246
00:50:39,680 –> 00:50:42,000
و همچنین فهمیدیم که چگونه
1247
00:50:42,000 –> 00:50:45,359
میتوانیم به همه موارد خود دسترسی داشته باشیم. نمونه هایی از
1248
00:50:45,359 –> 00:50:47,599
این ویژگی کلاس که ما
1249
00:50:47,599 –> 00:50:50,800
عمداً همه را نامگذاری کردیم اکنون در این قسمت
1250
00:50:50,800 –> 00:50:52,720
می خواهیم یک
1251
00:50:52,720 –> 00:50:55,119
مشکل دیگر را که از نظر
1252
00:50:55,119 –> 00:50:56,880
بهترین روش ها در زمانی که می خواهیم
1253
00:50:56,880 –> 00:50:58,640
این برنامه را گسترش دهیم و
1254
00:50:58,640 –> 00:51:01,200
ویژگی های بیشتری اضافه کنیم را حل کنیم، اکنون می توانید ببینید که تا این
1255
00:51:01,200 –> 00:51:05,520
مرحله ما داده های خود را به عنوان کد در
1256
00:51:05,520 –> 00:51:09,359
این فایل main.py تنها با نمونه سازی
1257
00:51:09,359 –> 00:51:11,440
آن پنج مورد در حال حاضر حفظ می کنیم، زمانی که ما به دنبال
1258
00:51:11,440 –> 00:51:13,359
گسترش این برنامه و افزودن برخی
1259
00:51:13,359 –> 00:51:15,440
ویژگی های بیشتر هستیم، سپس ممکن است
1260
00:51:15,440 –> 00:51:17,680
برای افزودن این ویژگیها زندگی سختتری دارید،
1261
00:51:17,680 –> 00:51:21,920
زیرا دادههای واقعی و کد
1262
00:51:21,920 –> 00:51:24,240
در یک مکان به معنای
1263
00:51:24,240 –> 00:51:27,119
در همان فایل main.py نگهداری میشوند، اکنون میتوانید
1264
00:51:27,119 –> 00:51:29,119
به ایجاد پایگاهدادهای
1265
00:51:29,119 –> 00:51:31,760
فکر کنید که این اطلاعات را حفظ کند، اما
1266
00:51:31,760 –> 00:51:33,680
من میخواهم چیزها را بیشتر نگه دارم.
1267
00:51:33,680 –> 00:51:35,599
برای اهداف این آموزش ساده است و
1268
00:51:35,599 –> 00:51:37,200
به همین دلیل است که من قصد دارم از چیزی
1269
00:51:37,200 –> 00:51:40,079
به نام csv استفاده کنم که ممکن است شنیده باشید
1270
00:51:40,079 –> 00:51:40,800
1271
00:51:40,800 –> 00:51:44,000
csv مخفف مقادیر جدا شده با کاما است، بنابراین
1272
00:51:44,000 –> 00:51:45,920
این بدان معناست که می توانید ادامه دهید و
1273
00:51:45,920 –> 00:51:49,599
از یک فایل csv استفاده کنید و می توانید مقادیر خود
1274
00:51:49,599 –> 00:51:52,559
را به صورت جدا شده با کاما ذخیره کنید، جایی که هر
1275
00:51:52,559 –> 00:51:55,920
خط یک داده ساختار یافته
1276
00:51:55,920 –> 00:51:58,559
را نشان می دهد و csv یک گزینه عالی در اینجا است
1277
00:51:58,559 –> 00:52:01,200
زیرا اجازه می دهد تا داده ها
1278
00:52:01,200 –> 00:52:03,920
در قالب ساختار جدولی ذخیره شوند،
1279
00:52:03,920 –> 00:52:06,800
بنابراین بیایید ادامه دهیم و یک فایل csv ایجاد کنیم
1280
00:52:06,800 –> 00:52:08,800
و من در واقع این کار را انجام خواهم داد. ادامه دهید و نام
1281
00:52:08,800 –> 00:52:10,359
این
1282
00:52:10,359 –> 00:52:13,520
آیتمها.csv را به همین صورت بگذارید و من ادامه میدهم
1283
00:52:13,520 –> 00:52:15,760
و برخی از
1284
00:52:15,760 –> 00:52:18,880
محتوای csv را قرار میدهم که
1285
00:52:18,880 –> 00:52:20,720
در پایان روز پاسخگوی همان
1286
00:52:20,720 –> 00:52:23,520
دادههایی است که ما در اینجا به دنبال آن هستیم تا
1287
00:52:23,520 –> 00:52:26,000
بتوانید ببینید e که در خط اول من
1288
00:52:26,000 –> 00:52:27,920
قیمت و مقدار نام را دارم و می بینید
1289
00:52:27,920 –> 00:52:31,119
که آنها با کاما از هم جدا شده اند بنابراین
1290
00:52:31,119 –> 00:52:32,880
ستون هایی را که قرار است
1291
00:52:32,880 –> 00:52:35,040
به عنوان داده هایی داشته باشیم که می خواهیم
1292
00:52:35,040 –> 00:52:37,599
حفظ کنیم و در خط دوم و
1293
00:52:37,599 –> 00:52:40,240
بعد از آن ما هستیم. دادههایی
1294
00:52:40,240 –> 00:52:42,800
خواهیم داشت که نشاندهنده دادههای واقعی است که
1295
00:52:42,800 –> 00:52:46,319
ما به دنبال حفظ آن هستیم، بنابراین اگر اکنون
1296
00:52:46,319 –> 00:52:48,880
میخواهیم پنجرهها را تقسیم کنیم، میتوانیم ببینیم که
1297
00:52:48,880 –> 00:52:51,599
آنها کاملاً معادل هستند و اکنون
1298
00:52:51,599 –> 00:52:54,400
فقط باید به دنبال راهی برای خواندن این
1299
00:52:54,400 –> 00:52:57,920
فایل csv باشیم و در واقع
1300
00:52:57,920 –> 00:53:00,319
اکنون آن اشیاء را نمونه برداری کنید، می توانید ببینید که من یک
1301
00:53:00,319 –> 00:53:02,960
پیشنهاد از طرف pycharm برای نصب
1302
00:53:02,960 –> 00:53:05,280
افزونه ای دارم که از فایل های csv پشتیبانی می کند، بنابراین
1303
00:53:05,280 –> 00:53:07,599
من فقط روی آن کلیک می کنم و
1304
00:53:07,599 –> 00:53:10,160
آن پلاگین ها را نصب می کنم و می توانید ببینید
1305
00:53:10,160 –> 00:53:13,040
که من یک خواننده csv در اینجا خواهم داشت و
1306
00:53:13,040 –> 00:53:15,280
خواهیم دید که آیا میتوانیم
1307
00:53:15,280 –> 00:53:18,800
این دادهها را در جدولی ببینیم که بسیار
1308
00:53:18,800 –> 00:53:20,880
زیباتر است، بنابراین بیایید این را نصب کنیم
1309
00:53:20,880 –> 00:53:22,559
و اکنون میتوانید ببینید که من
1310
00:53:22,559 –> 00:53:24,960
گزینههای دیگری دارم که در واقع میتوانم
1311
00:53:24,960 –> 00:53:27,599
از اینجا پیش بروم و از آنها استفاده کنم. بدانید که
1312
00:53:27,599 –> 00:53:30,240
این بسیار کوچک است همه به جز در واقع شما
1313
00:53:30,240 –> 00:53:32,400
چند برگه دارید که می توانید ادامه دهید و
1314
00:53:32,400 –> 00:53:34,559
روی آنها کلیک کنید و اگر قرار باشد روی
1315
00:53:34,559 –> 00:53:37,760
ویرایشگر جدول کلیک کنم و در واقع
1316
00:53:37,760 –> 00:53:39,200
به این
1317
00:53:39,200 –> 00:53:41,920
فایل تمرکز بیشتری بدهم، می توانید ببینید که من
1318
00:53:41,920 –> 00:53:44,880
در واقع بهترین راه برای خواندن این
1319
00:53:44,880 –> 00:53:47,920
داده ها را دارم اکنون می توانید ببینید که من ستونهایم را دارم،
1320
00:53:47,920 –> 00:53:51,839
میتوانید ببینید که من ردیفهایم را دارم
1321
00:53:51,839 –> 00:53:54,079
و این خیلی خوب است حالا میتوانم
1322
00:53:54,079 –> 00:53:56,640
جلوتر بروم و دادههایم را زیباتر تجسم کنم
1323
00:53:56,640 –> 00:53:59,280
و این روش معمولتر برای
1324
00:53:59,280 –> 00:54:02,400
حفظ دادههای شما خوب است، بنابراین اکنون که
1325
00:54:02,400 –> 00:54:05,359
فهمیدیم چگونه csv فایلها کار میکنند،
1326
00:54:05,359 –> 00:54:07,599
بیایید ادامه دهیم و فایلهای csv خود را بخوانیم
1327
00:54:07,599 –> 00:54:09,760
و نمونهها را به
1328
00:54:09,760 –> 00:54:12,720
روشی عمومی نمونهسازی کنیم، بنابراین حذف
1329
00:54:12,720 –> 00:54:15,599
آن پنج خط منطقی است و من از
1330
00:54:15,599 –> 00:54:16,960
آن خطوط
1331
00:54:16,960 –> 00:54:20,160
زیر تخفیف اعمال استفاده میکنم و از
1332
00:54:20,160 –> 00:54:23,359
روشی استفاده میکنم که میتوانم آن را instantiate نام ببرم.
1333
00:54:23,359 –> 00:54:24,960
از csv
1334
00:54:24,960 –> 00:54:28,319
مانند آن اکنون می توانید ببینید که این
1335
00:54:28,319 –> 00:54:30,800
یکی نیز قرار است خودش را دریافت کند زیرا
1336
00:54:30,800 –> 00:54:32,880
اگر یادتان باشد گفتم که در هر روشی
1337
00:54:32,880 –> 00:54:35,440
که طراحی خواهیم کرد
1338
00:54:35,440 –> 00:54:38,880
حداقل یک پارامتر باید دریافت کنیم
1339
00:54:38,880 –> 00:54:42,400
که به عنوان خود نمونه ارسال می شود زیرا
1340
00:54:42,400 –> 00:54:46,079
این ساعت ow python oop اکنون کار می کند
1341
00:54:46,079 –> 00:54:48,319
مشکل این است که ما هیچ
1342
00:54:48,319 –> 00:54:51,119
نمونه ای در دست نداریم تا این
1343
00:54:51,119 –> 00:54:53,599
متد را از نمونه فراخوانی کنیم زیرا این
1344
00:54:53,599 –> 00:54:55,440
متد در واقع برای
1345
00:54:55,440 –> 00:54:58,480
نمونه سازی خود شی طراحی شده است بنابراین این
1346
00:54:58,480 –> 00:55:00,799
بدان معنی است که این متد
1347
00:55:00,799 –> 00:55:03,520
از یک نمونه فراخوانی نمی شود. بنابراین راهی که
1348
00:55:03,520 –> 00:55:06,400
قرار است حل شود این است که
1349
00:55:06,400 –> 00:55:09,359
این متد را به یک متد کلاس تبدیل می
1350
00:55:09,359 –> 00:55:12,799
کنیم، اکنون یک متد کلاس متدی است
1351
00:55:12,799 –> 00:55:16,319
که می توان به روش زیر به آن دسترسی پیدا کرد،
1352
00:55:16,319 –> 00:55:18,880
بنابراین من از این خط برای حذف
1353
00:55:18,880 –> 00:55:21,520
آن استفاده می کنم و می توان به آن دسترسی پیدا کرد.
1354
00:55:21,520 –> 00:55:22,880
1355
00:55:22,880 –> 00:55:25,920
فقط سطح کلاس به نظر می رسد مانند
1356
00:55:25,920 –> 00:55:29,119
نقطه مورد از csv و سپس در
1357
00:55:29,119 –> 00:55:32,160
اینجا ما احتمالاً فایل csv خود را ارسال می کنیم،
1358
00:55:32,160 –> 00:55:34,559
بنابراین این روش باید مسئولیت کامل
1359
00:55:34,559 –> 00:55:37,119
نمونه سازی آن
1360
00:55:37,119 –> 00:55:39,839
اشیاء را برای ما بپذیرد، بنابراین اکنون که
1361
00:55:39,839 –> 00:55:42,079
این را فهمیدیم، اجازه دهید جلو برویم و ببینیم چگونه می
1362
00:55:42,079 –> 00:55:44,880
تواند یک متد کلاس ایجاد کند، بنابراین مطمئناً
1363
00:55:44,880 –> 00:55:47,520
باید خود را حذف کنیم و من می دانم که
1364
00:55:47,520 –> 00:55:49,520
خطاهایی داریم، اما می خواهیم
1365
00:55:49,520 –> 00:55:52,240
هر یک از آنها را فقط در یک ثانیه حل
1366
00:55:52,240 –> 00:55:54,319
کنیم تا این را به یک کلاس تبدیل کنیم.
1367
00:55:54,319 –> 00:55:57,520
روش s ما باید از یک دکوراتور استفاده
1368
00:55:57,520 –> 00:56:00,000
کنیم که مسئول تبدیل این
1369
00:56:00,000 –> 00:56:01,920
متد به متد کلاس باشد، اکنون
1370
00:56:01,920 –> 00:56:04,799
دکوراتورها در پایتون فقط یک راه سریع
1371
00:56:04,799 –> 00:56:06,960
برای تغییر رفتار توابعی
1372
00:56:06,960 –> 00:56:09,520
است که می نویسیم با فراخوانی
1373
00:56:09,520 –> 00:56:12,160
آنها درست قبل از خطی که می نویسیم.
1374
00:56:12,160 –> 00:56:15,119
تابع خود را ایجاد کنیم تا بتوانیم از علامت افزودن
1375
00:56:15,119 –> 00:56:18,160
استفاده کنیم و از متد کلاس
1376
00:56:18,160 –> 00:56:20,880
در اینجا استفاده کنیم و سپس این برگه فوری از
1377
00:56:20,880 –> 00:56:23,680
متد csv یک متد کلاسی خواهد بود،
1378
00:56:23,680 –> 00:56:25,760
بنابراین اکنون که این
1379
00:56:25,760 –> 00:56:27,680
را فهمیدیم، باید
1380
00:56:27,680 –> 00:56:30,079
قبل از اینکه ما یک اطلاعات دیگر را درک کنیم. ادامه دهید
1381
00:56:30,079 –> 00:56:32,400
و این روش را طراحی کنید اکنون می خواهم به
1382
00:56:32,400 –> 00:56:34,960
شما نشان دهم اگر بخواهم کل نام را حذف کنم چه اتفاقی می افتد
1383
00:56:34,960 –> 00:56:37,440
و سعی کنم
1384
00:56:37,440 –> 00:56:39,920
این تابع را در اینجا دوباره ایجاد کنم و من
1385
00:56:39,920 –> 00:56:42,160
فقط می گویم
1386
00:56:42,160 –> 00:56:45,040
دوباره از csv instantiate کنید حالا توجه کنید
1387
00:56:45,040 –> 00:56:46,640
اگر بخواهم باز کنم چه اتفاقی می افتد
1388
00:56:46,640 –> 00:56:48,720
اکنون پرانتزها را ببندید، می بینید
1389
00:56:48,720 –> 00:56:51,520
که هنوز یک پارامتر دریافت می کند، اما
1390
00:56:51,520 –> 00:56:55,119
این بار به نام cls
1391
00:56:55,119 –> 00:56:57,440
now what is going on here و چیزی
1392
00:56:57,440 –> 00:57:00,160
که در اینجا می گذرد این واقعیت است که
1393
00:57:00,160 –> 00:57:03,119
وقتی ما با ou تماس می گیریم روش های کلاس r سپس
1394
00:57:03,119 –> 00:57:04,079
1395
00:57:04,079 –> 00:57:06,799
شی کلاس به عنوان
1396
00:57:06,799 –> 00:57:09,599
آرگومان اول همیشه در پس زمینه ارسال می شود،
1397
00:57:09,599 –> 00:57:12,480
بنابراین کمی شبیه نمونه ای است که در آن به
1398
00:57:12,480 –> 00:57:14,880
عنوان اولین آرگومان نیز ارسال می شود، اما
1399
00:57:14,880 –> 00:57:17,280
این بار وقتی یک متد کلاس را در
1400
00:57:17,280 –> 00:57:20,079
این رویکرد فراخوانی می کنیم، کلاس مرجع
1401
00:57:20,079 –> 00:57:22,960
باید به عنوان آرگومان اول ارسال شود
1402
00:57:22,960 –> 00:57:26,000
، به همین دلیل است که شما همچنان باید
1403
00:57:26,000 –> 00:57:28,640
حداقل یک پارامتر را دریافت کنید، اما ما احتمالاً
1404
00:57:28,640 –> 00:57:30,640
متوجه شده ایم که نمی توانیم این
1405
00:57:30,640 –> 00:57:32,799
خود را نامگذاری کنیم، زیرا این
1406
00:57:32,799 –> 00:57:35,599
خیلی گیج کننده خواهد بود، پس حالا بیایید
1407
00:57:35,599 –> 00:57:38,079
جلوتر برویم و تعدادی بنویسیم. کدی برای خواندن
1408
00:57:38,079 –> 00:57:40,960
فایل csv و نمونه سازی برخی از اشیاء
1409
00:57:40,960 –> 00:57:43,119
اکنون من می خواهم ابتدا به بالا بروم و
1410
00:57:43,119 –> 00:57:46,720
کتابخانه ای به نام
1411
00:57:46,720 –> 00:57:50,079
csv را وارد کنم، بنابراین به اینجا می روم و از یک
1412
00:57:50,079 –> 00:57:52,880
خط واردات csv استفاده می کنم زیرا این کار خواهد بود.
1413
00:57:52,880 –> 00:57:54,240
کتابخانه ای که مسئولیت کامل
1414
00:57:54,240 –> 00:57:57,200
خواندن فایل csv را بر عهده می گیرد و
1415
00:57:57,200 –> 00:57:59,359
سپس خواهیم دید که چگونه می توانیم
1416
00:57:59,359 –> 00:58:01,920
برخی از اشیاء را به درستی نمونه سازی کنیم، بنابراین اکنون می توانم
1417
00:58:01,920 –> 00:58:05,040
ادامه دهم و از یک مدیر زمینه برای خواندن
1418
00:58:05,040 –> 00:58:08,079
فایل items.csv استفاده کنم، اکنون هر دو
1419
00:58:08,079 –> 00:58:10,240
فایل در محل قرار دارند. در همان مکان،
1420
00:58:10,240 –> 00:58:13,040
بنابراین میتوانم مستقیماً بگویم منتظر باز کردن
1421
00:58:13,040 –> 00:58:15,200
آیتمها dot csv
1422
00:58:15,200 –> 00:58:17,440
و مجوزی که
1423
00:58:17,440 –> 00:58:19,520
در اینجا ارسال خواهم کرد میتواند r باشد، زیرا ما فقط
1424
00:58:19,520 –> 00:58:22,640
به دنبال خواندن این هستیم و من
1425
00:58:22,640 –> 00:58:23,680
1426
00:58:23,680 –> 00:58:27,680
میگویم که اکنون در این open، من ادامه خواهم داد.
1427
00:58:27,680 –> 00:58:30,799
و از روشی برای
1428
00:58:30,799 –> 00:58:33,200
خواندن مستقیم این csv استفاده کنید که در پایان
1429
00:58:33,200 –> 00:58:35,680
روز مسئول تبدیل آن
1430
00:58:35,680 –> 00:58:38,640
به دیکشنری پایتون خواهد بود، بنابراین من می گویم
1431
00:58:38,640 –> 00:58:41,920
reader برابر با csv
1432
00:58:41,920 –> 00:58:46,240
dot dict reader است و من
1433
00:58:46,240 –> 00:58:49,839
محتوای فایل خود را منتقل می کنم. مثل
1434
00:58:49,839 –> 00:58:52,559
این است که اکنون این روش باید ادامه یابد
1435
00:58:52,559 –> 00:58:55,440
و محتوای ما را به عنوان لیستی از
1436
00:58:55,440 –> 00:58:57,520
دیکشنری ها بخواند، اما در پایان روز
1437
00:58:57,520 –> 00:58:59,200
ما نیز باید جلو برویم و این
1438
00:58:59,200 –> 00:59:00,880
را به یک لیست تبدیل کنیم، بنابراین من ادامه می
1439
00:59:00,880 –> 00:59:02,559
دهم و یک متغیر دیگر ایجاد می کنم که
1440
00:59:02,559 –> 00:59:05,520
برابر با آیتمها و من فقط
1441
00:59:05,520 –> 00:59:08,960
خواننده را به یک لیست تبدیل میکنم و تمام و
1442
00:59:08,960 –> 00:59:10,799
اکنون که اقداماتی را
1443
00:59:10,799 –> 00:59:12,880
که میخواستیم با خواندن
1444
00:59:12,880 –> 00:59:16,480
این فایل csv تکمیل کنیم، بیایید جلو برویم و از یک
1445
00:59:16,480 –> 00:59:19,680
تب shift برای تورفتگی استفاده کنیم و حالا قبل از اینکه
1446
00:59:19,680 –> 00:59:22,000
جلو برویم و instantiate some obj ects
1447
00:59:22,000 –> 00:59:23,680
بیایید جلو برویم و نتایج
1448
00:59:23,680 –> 00:59:26,640
تکرار را روی لیست آیتم ها ببینیم اکنون من ادامه می دهم
1449
00:59:26,640 –> 00:59:29,839
و از آیتم ها در
1450
00:59:29,839 –> 00:59:30,880
آیتم ها
1451
00:59:30,880 –> 00:59:33,599
استفاده می کنم و سپس فقط از موارد چاپی استفاده
1452
00:59:33,599 –> 00:59:36,160
می کنم تا رفتار آن را به شما نشان دهم و
1453
00:59:36,160 –> 00:59:38,799
ببخشید که باید مورد درست باشد. حالا
1454
00:59:38,799 –> 00:59:40,799
که این را فهمیدیم، بیایید
1455
00:59:40,799 –> 00:59:42,559
جلو برویم و ببینیم در آن خطوط چه چیزهایی داریم،
1456
00:59:42,559 –> 00:59:45,200
بنابراین بعد از تعریف کلاس خود،
1457
00:59:45,200 –> 00:59:46,839
فقط این مورد را فراخوانی می کنیم.
1458
00:59:46,839 –> 00:59:50,000
instantiate از متد csv، بنابراین اگر قرار
1459
00:59:50,000 –> 00:59:50,960
بود آن را
1460
00:59:50,960 –> 00:59:53,760
اجرا کنم، می توانید ببینید که من مقداری دریافت می کنم.
1461
00:59:53,760 –> 00:59:56,400
لغت نامه ها در خطوط مجزا هستند و
1462
00:59:56,400 –> 00:59:59,119
این به این دلیل است که من فهرستی از
1463
00:59:59,119 –> 01:00:01,440
فرهنگ لغت را در اینجا تکرار می کنم و این کاملاً
1464
01:00:01,440 –> 01:00:03,599
عالی است، بنابراین تنها چیزی که
1465
01:00:03,599 –> 01:00:07,040
در حال حاضر از دست می دهیم این است که
1466
01:00:07,040 –> 01:00:09,599
اکنون علاوه بر چاپ آن ها، نمونه هایی را ایجاد کنیم و
1467
01:00:09,599 –> 01:00:12,880
اکنون می توانیم چیزی شبیه به یک مورد بگوییم و باز کنیم.
1468
01:00:12,880 –> 01:00:14,400
پرانتزها را بالا و ببندید
1469
01:00:14,400 –> 01:00:16,480
و این باید برای نمونهسازی
1470
01:00:16,480 –> 01:00:19,359
نمونههای ما کافی باشد اکنون میتوانم ادامه
1471
01:00:19,359 –> 01:00:22,400
دهم و استدلالهایم را با
1472
01:00:22,400 –> 01:00:25,440
خواندن کلیدهای یک فرهنگ لغت به اینجا منتقل کنم تا
1473
01:00:25,440 –> 01:00:27,280
بتوانم بگویم
1474
01:00:27,280 –> 01:00:30,319
نام برابر است با آیتم dot get
1475
01:00:30,319 –> 01:00:32,079
و که
1476
01:00:32,079 –> 01:00:35,359
نام را دریافت می کند و اکنون می توانم یک کاما اضافه کنم
1477
01:00:35,359 –> 01:00:39,280
و این خط را دو بار کپی کنم و
1478
01:00:39,280 –> 01:00:42,319
آن ها را بر این اساس تغییر دهم تا این قیمت باشد
1479
01:00:42,319 –> 01:00:45,200
و این مقدار باشد و اکنون باید
1480
01:00:45,200 –> 01:00:48,400
نام کلیدم را جایگزین کنم تا
1481
01:00:48,400 –> 01:00:52,480
قیمت اینجا و سپس مقدار همانجا باشد.
1482
01:00:52,480 –> 01:00:54,480
و حالا بیایید ادامه دهیم و
1483
01:00:54,480 –> 01:00:57,839
ببینیم اگر بخواهم این متد را فراخوانی کنم و همچنین ویژگی item.all را فراخوانی کنم چه اتفاقی میافتد،
1484
01:00:57,839 –> 01:01:00,559
1485
01:01:00,559 –> 01:01:02,319
1486
01:01:02,319 –> 01:01:04,480
زیرا این یکی تمام
1487
01:01:04,480 –> 01:01:07,359
نمونههای موجود در لیست را ذخیره میکند، اگر
1488
01:01:07,359 –> 01:01:10,160
من ادامه دهم و آن را اجرا کنم، پس شما می بینید
1489
01:01:10,160 –> 01:01:13,680
که من برخی از خطاها را دارم اکنون می بینید
1490
01:01:13,680 –> 01:01:18,240
که خطاها مربوط به قیمت هستند
1491
01:01:18,240 –> 01:01:20,480
و می بینید که دریافت ما
1492
01:01:20,480 –> 01:01:23,599
بزرگتر یا مساوی صفر نیست حالا بیایید
1493
01:01:23,599 –> 01:01:25,680
جلو برویم و خیلی سریع این را برطرف کنیم بنابراین
1494
01:01:25,680 –> 01:01:28,640
در items.csv می توانید ببینید که آنها در
1495
01:01:28,640 –> 01:01:31,599
واقع اعداد صحیحی هستند که بزرگتر از
1496
01:01:31,599 –> 01:01:34,240
صفر هستند، بنابراین مشکل احتمالاً این واقعیت است
1497
01:01:34,240 –> 01:01:37,280
که آنها به عنوان رشته ارسال می شوند، بنابراین ما
1498
01:01:37,280 –> 01:01:40,079
باید جلو برویم و آنها را به عنوان
1499
01:01:40,079 –> 01:01:43,200
اعداد صحیح ارسال کنیم، بنابراین من آنها را به
1500
01:01:43,200 –> 01:01:44,160
1501
01:01:44,160 –> 01:01:45,040
int
1502
01:01:45,040 –> 01:01:47,119
مانند آن تبدیل می کنم و
1503
01:01:47,119 –> 01:01:48,799
حالا بیایید جلوتر برویم و ببینیم اگر
1504
01:01:48,799 –> 01:01:50,960
ما هر گونه مشکلی خواهیم داشت همانطور که انتظار دارم مشکلی داشته باشیم
1505
01:01:50,960 –> 01:01:53,440
زیرا کمیت باید
1506
01:01:53,440 –> 01:01:55,359
از همان چیزی شکایت کند و
1507
01:01:55,359 –> 01:01:57,039
می بینید که دقیقاً همان چیزی است
1508
01:01:57,039 –> 01:02:00,960
که در اینجا اتفاق می افتد بنابراین می توانم از همان
1509
01:02:00,960 –> 01:02:02,799
مقدار برای مقداری
1510
01:02:02,799 –> 01:02:05,200
مانند آن استفاده کنم و
1511
01:02:05,200 –> 01:02:08,000
با آن کار کنم و می بینید که اکنون
1512
01:02:08,000 –> 01:02:11,039
ما نمونه های خود را کاملاً می بینیم، می
1513
01:02:11,039 –> 01:02:12,559
خواهم یک مشکل دیگر را نشان دهم
1514
01:02:12,559 –> 01:02:14,480
که در آینده ممکن است داشته باشیم و اکنون باید
1515
01:02:14,480 –> 01:02:17,280
از آن اجتناب کنیم، بنابراین این سه خط
1516
01:02:17,280 –> 01:02:19,359
با این
1517
01:02:19,359 –> 01:02:22,559
ساختار داده ها کار می کنند، اما اگر قرار بود آن را تغییر دهم
1518
01:02:22,559 –> 01:02:25,280
. قیمت صفحه کلید ما به چیزی حدود
1519
01:02:25,280 –> 01:02:27,240
1520
01:02:27,240 –> 01:02:30,000
74.90 چیزی شبیه به آن
1521
01:02:30,000 –> 01:02:33,119
و دوباره فایل ما را اجرا
1522
01:02:33,119 –> 01:02:34,880
کنید سپس می بینید که
1523
01:02:34,880 –> 01:02:37,119
مشکلاتی دریافت خواهیم کرد بنابراین باید
1524
01:02:37,119 –> 01:02:39,520
قیمت را نه به یک عدد صحیح بلکه
1525
01:02:39,520 –> 01:02:42,480
به یک شناور مانند آن تبدیل کنیم و این
1526
01:02:42,480 –> 01:02:44,559
تنها راه است. برای غلبه بر این موضوع،
1527
01:02:44,559 –> 01:02:46,319
زیرا نمیخواهیم قیمت را مستقیماً به یک
1528
01:02:46,319 –> 01:02:48,880
عدد صحیح تبدیل کنیم زیرا میتواند
1529
01:02:48,880 –> 01:02:52,720
شناور باشد، بنابراین اکنون میتوانیم ادامه دهیم و
1530
01:02:52,720 –> 01:02:54,480
اجرا کنیم و میبینید که اکنون
1531
01:02:54,480 –> 01:02:57,680
کاملاً کار میکند، اگرچه
1532
01:02:57,680 –> 01:03:00,640
قیمتها را 100.0 میبینیم،
1533
01:03:00,640 –> 01:03:02,480
اما این مقداری به این نکته توجه داشته
1534
01:03:02,480 –> 01:03:04,319
باشید که در آینده به آن نگاه خواهیم کرد اما در حال حاضر
1535
01:03:04,319 –> 01:03:06,240
عالی کار می کند و اکنون ما آماده
1536
01:03:06,240 –> 01:03:09,280
هستیم تا به موضوع بعدی خود
1537
01:03:09,280 –> 01:03:11,200
برویم، بنابراین اکنون که روش های کلاس را کاملاً درک کرده ایم،
1538
01:03:11,200 –> 01:03:13,039
بیایید جلو برویم و همچنین
1539
01:03:13,039 –> 01:03:15,839
بفهمیم که اکنون چه متدهای ایستا هستند.
1540
01:03:15,839 –> 01:03:18,079
متد static باید کارهایی را برای
1541
01:03:18,079 –> 01:03:20,720
شما انجام دهد که ارتباط منطقی با
1542
01:03:20,720 –> 01:03:23,599
یک کلاس دارد، به عنوان مثال اگر می خواهید
1543
01:03:23,599 –> 01:03:26,000
بررسی کنید که آیا یک عدد یک عدد صحیح است یا یک
1544
01:03:26,000 –> 01:03:28,400
شناور، این یک کاندید خوبی برای
1545
01:03:28,400 –> 01:03:30,960
ایجاد یک متد استاتیک است زیرا این
1546
01:03:30,960 –> 01:03:33,520
یک مقدار ارتباط دارد. کلاسی که
1547
01:03:33,520 –> 01:03:35,839
با آن کار می کنیم منطقی است بررسی کنیم
1548
01:03:35,839 –> 01:03:39,920
که آیا قیمت یک کالا دارای نقطه اعشار است یا خیر
1549
01:03:39,920 –> 01:03:42,880
و با گفتن این که دارای یک نقطه اعشار است،
1550
01:03:42,880 –> 01:03:46,160
واضح است که آنهایی را که اکنون نقطه صفر هستند حساب
1551
01:03:46,160 –> 01:03:49,440
می کنم تا متدهای ثابت و کلاس
1552
01:03:49,440 –> 01:03:51,839
می توانند بسیار شبیه به هم باشند. برای شما اما
1553
01:03:51,839 –> 01:03:54,000
تفاوت های اصلی را خیلی زود توضیح خواهیم داد،
1554
01:03:54,000 –> 01:03:57,200
پس من از آن خطوط
1555
01:03:57,200 –> 01:04:00,000
برای ایجاد اولین روش استاتیک خود استفاده خواهم کرد، حالا
1556
01:04:00,000 –> 01:04:02,960
بیایید پیش برویم و از کلمه کلیدی def استفاده
1557
01:04:02,960 –> 01:04:05,039
کنیم و نام این روش را
1558
01:04:05,039 –> 01:04:06,880
زیر خط صحیح می گذاریم زیرا ما s کمکی
1559
01:04:06,880 –> 01:04:08,559
که میخواهیم یک روش ثابت بنویسیم
1560
01:04:08,559 –> 01:04:11,119
که بررسی کند آیا یک عدد دریافتی یک
1561
01:04:11,119 –> 01:04:13,520
عدد صحیح است یا نه، اگر قرار بود پرانتزها را باز کنم
1562
01:04:13,520 –> 01:04:15,280
و ببندم، این
1563
01:04:15,280 –> 01:04:17,760
بدیهی است که اکنون خودش دریافت میکند.
1564
01:04:17,760 –> 01:04:20,160
1565
01:04:20,160 –> 01:04:21,760
اگر بخواهم این روش را
1566
01:04:21,760 –> 01:04:23,839
به یک روش ایستا تغییر دهم و رویکرد
1567
01:04:23,839 –> 01:04:25,440
تقریباً مشابهی باشد که
1568
01:04:25,440 –> 01:04:26,400
1569
01:04:26,400 –> 01:04:28,480
با متد کلاس انجام دادیم، از دکوراتور استفاده خواهیم کرد
1570
01:04:28,480 –> 01:04:31,039
که به آن روش استاتیک می گویند
1571
01:04:31,039 –> 01:04:32,720
و این باید مسئول
1572
01:04:32,720 –> 01:04:35,680
تبدیل باشد. من ادامه می دهم و
1573
01:04:35,680 –> 01:04:39,039
از این خط استفاده می کنم و در روش ایستا می گویم
1574
01:04:39,039 –> 01:04:42,400
که اکنون توجه کنید
1575
01:04:42,400 –> 01:04:45,839
که چگونه محیط دریافتی
1576
01:04:45,839 –> 01:04:48,000
به رنگ نارنجی معمولی که ما
1577
01:04:48,000 –> 01:04:50,480
آشنا هستیم تبدیل شده است زیرا این فقط یک پارامتر منظم است
1578
01:04:50,480 –> 01:04:53,599
که اکنون دریافت می کنیم به این معنی است
1579
01:04:53,599 –> 01:04:56,480
که ایستا متدها هرگز
1580
01:04:56,480 –> 01:04:59,760
نمونه را
1581
01:04:59,760 –> 01:05:03,520
به عنوان اولین آرگومان در پس زمینه نمی فرستند و این
1582
01:05:03,520 –> 01:05:06,400
برخلاف متدهای کلاس است، متدهای
1583
01:05:06,400 –> 01:05:09,680
کلاس مرجع کلاس را به عنوان اولین
1584
01:05:09,680 –> 01:05:11,760
آرگومان ارسال می کنند و به همین دلیل است که مجبور شدیم
1585
01:05:11,760 –> 01:05:15,039
دوباره cls را دریافت می کنیم و به همین دلیل است که
1586
01:05:15,039 –> 01:05:17,599
عمداً با بنفش رنگ می شود اما
1587
01:05:17,599 –> 01:05:20,319
با روش های استاتیک هرگز
1588
01:05:20,319 –> 01:05:23,920
شی را به عنوان اولین آرگومان ارسال نمی
1589
01:05:23,920 –> 01:05:26,720
کنیم بنابراین باید با
1590
01:05:26,720 –> 01:05:29,839
متد استاتیک مانند یک تابع منظم ارتباط برقرار کنیم که فقط
1591
01:05:29,839 –> 01:05:32,079
پارامترهایی را دریافت می کند که ما با آن آشنا هستیم.
1592
01:05:32,079 –> 01:05:34,640
توابع جدا شده در حال حاضر من
1593
01:05:34,640 –> 01:05:36,880
فقط در عرض چند دقیقه به این موضوع خواهم پرداخت، اما
1594
01:05:36,880 –> 01:05:38,799
اجازه دهید ابتدا روش استاتیک خود را تمام کنیم،
1595
01:05:38,799 –> 01:05:41,599
بنابراین باید
1596
01:05:41,599 –> 01:05:44,079
num را به عنوان یک پارامتر
1597
01:05:44,079 –> 01:05:45,680
دریافت کند، زیرا ما باید حداقل چیزی را دریافت کنیم تا بررسی کنیم
1598
01:05:45,680 –> 01:05:48,079
که آیا یک عدد صحیح است یا نه همه. در حال حاضر
1599
01:05:48,079 –> 01:05:50,400
که ما در این روش هستیم
1600
01:05:50,400 –> 01:05:52,480
، می توانم ادامه دهم و از چند
1601
01:05:52,480 –> 01:05:54,880
دستور if استفاده کنم تا بررسی کنم که آیا آرگومان دریافتی
1602
01:05:54,880 –> 01:05:57,520
یک عدد صحیح است یا خیر، اگر
1603
01:05:57,520 –> 01:06:00,079
به یاد داشته باشید که ما گفتیم که می
1604
01:06:00,079 –> 01:06:02,079
خواهیم شناورها را بشماریم.
1605
01:06:02,079 –> 01:06:04,960
1606
01:06:04,960 –> 01:06:08,640
که اعشاری هستند که 0.0 خوب هستند
1607
01:06:08,640 –> 01:06:10,400
به این معنی
1608
01:06:10,400 –> 01:06:13,200
به عنوان مثال 5.0
1609
01:06:13,200 –> 01:06:16,559
10.0 و به همین ترتیب خوب است، بنابراین اکنون که
1610
01:06:16,559 –> 01:06:19,119
این را فهمیدیم، اجازه دهید پیش برویم و از
1611
01:06:19,119 –> 01:06:21,599
دستور if در اینجا استفاده کنیم، بنابراین if و
1612
01:06:21,599 –> 01:06:23,359
تابع ساخته شده را که ca است فراخوانی می کنیم.
1613
01:06:23,359 –> 01:06:25,680
lled یک نمونه است
1614
01:06:25,680 –> 01:06:28,319
و باید دو آرگومان دریافت کند
1615
01:06:28,319 –> 01:06:30,000
و ما میتوانیم بفهمیم که این
1616
01:06:30,000 –> 01:06:32,079
تابع چه کاری برای م