در این مطلب، ویدئو دوره خرابی python debugger: pdb / breakpoint (مبتدی – متوسط) آنتونی #097 را توضیح می دهد با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:15:01
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:03,360 –> 00:00:05,359
سلام و به ویدیوی دیگری در این ویدیو خوش آمدید،
2
00:00:05,359 –> 00:00:07,040
ما در
3
00:00:07,040 –> 00:00:10,240
مورد دیباگر در پایتون صحبت می کنیم،
4
00:00:10,240 –> 00:00:12,400
صادقانه بگویم، من فکر می کنم این یکی از
5
00:00:12,400 –> 00:00:15,120
مفیدترین ابزارهایی است که من در جعبه ابزار خود
6
00:00:15,120 –> 00:00:17,279
دارم وقتی روی کد کار می کنم.
7
00:00:17,279 –> 00:00:19,039
اشکالزدای تعاملی
8
00:00:19,039 –> 00:00:21,039
بهجای دستورات چاپی، نمیدانم برخی از
9
00:00:21,039 –> 00:00:22,400
افراد بیانیههای چاپی را ترجیح میدهند، میدانم
10
00:00:22,400 –> 00:00:23,760
که بسیار بحثبرانگیز است،
11
00:00:23,760 –> 00:00:26,240
اما من میخواهم
12
00:00:26,240 –> 00:00:29,119
اصول استفاده از اشکالزدا در پایتون
13
00:00:29,119 –> 00:00:32,320
را امروز به شما نشان
14
00:00:32,320 –> 00:00:34,079
دهم.
15
00:00:34,079 –> 00:00:36,000
فقط به این دلیل که حجم قابل توجهی
16
00:00:36,000 –> 00:00:38,559
از کد دارد و من زمان زیادی را صرف
17
00:00:38,559 –> 00:00:40,000
اشکالزدایی این پایه کد میکنم، در Pre-Commit کار میکنم، بنابراین
18
00:00:40,000 –> 00:00:41,120
19
00:00:41,120 –> 00:00:44,239
امروز چند تکنیک برای اشکالزدایی
20
00:00:44,239 –> 00:00:45,360
و اولین چیزی که میخواهیم به شما نشان دهم. باید این کار را انجام دهیم این
21
00:00:45,360 –> 00:00:48,640
است که اکنون کد اشکال زدایی خود را
22
00:00:48,640 –> 00:00:52,079
در pre-commit وارد می کنیم، توجه داشته باشید که تعداد
23
00:00:52,079 –> 00:00:53,440
زیادی اشکال زدا وجود دارد که ما
24
00:00:53,440 –> 00:00:55,920
بیشتر به دیباگر pdb امروز پایبند خواهیم
25
00:00:55,920 –> 00:00:56,480
26
00:00:56,480 –> 00:00:58,320
بود که با پایتون ارسال می شود
27
00:00:58,320 –> 00:00:59,520
و بنابراین شما این کار را انجام نمی دهید. نیازی به نصب
28
00:00:59,520 –> 00:01:00,960
چیز دیگری با آن نیست
29
00:01:00,960 –> 00:01:03,120
من متوجه شدم که شما می دانید
30
00:01:03,120 –> 00:01:04,879
که این بهترین اشکال زدا نیست، اما
31
00:01:04,879 –> 00:01:06,720
از آنجایی که از جعبه بیرون می آید،
32
00:01:06,720 –> 00:01:08,320
به استفاده از آن عادت کرده ام
33
00:01:08,320 –> 00:01:09,360
زیرا نیازی به
34
00:01:09,360 –> 00:01:10,960
نصب یک دیباگر جداگانه در جای
35
00:01:10,960 –> 00:01:12,159
دیگری نیست، اما یکسری اشکال زداهای دیگر وجود دارد.
36
00:01:12,159 –> 00:01:13,680
مانند pudb
37
00:01:13,680 –> 00:01:17,119
یا ipdp یا اشکالزدای pycharm را میشناسید
38
00:01:17,119 –> 00:01:18,479
یا مثل اینکه تعداد زیادی از
39
00:01:18,479 –> 00:01:18,960
آنها وجود دارد، اما
40
00:01:18,960 –> 00:01:20,479
ما امروز روی اساسیترین آنها تمرکز خواهیم کرد
41
00:01:20,479 –> 00:01:22,400
42
00:01:22,400 –> 00:01:23,439
و اولین کاری که
43
00:01:23,439 –> 00:01:24,960
میخواهید انجام دهید این است که شما اگر می
44
00:01:24,960 –> 00:01:26,000
خواهید یک
45
00:01:26,000 –> 00:01:27,759
نقطه شکست در کد خود قرار دهید، نقطه شکست
46
00:01:27,759 –> 00:01:30,000
همان جایی است که برنامه شما متوقف می شود و
47
00:01:30,000 –> 00:01:30,560
48
00:01:30,560 –> 00:01:32,720
به شما فرصتی می دهد تا اشکال زدایی را انجام دهید، بنابراین من
49
00:01:32,720 –> 00:01:34,479
معمولاً دوست دارم این کار را درست قبل از اینکه مشکلی رخ دهد انجام دهم،
50
00:01:34,479 –> 00:01:36,000
51
00:01:36,000 –> 00:01:37,600
اما ما این کار را انجام می دهیم. آن را در یک
52
00:01:37,600 –> 00:01:40,079
فایل خاص که در
53
00:01:40,079 –> 00:01:42,240
حال حاضر هیچ مشکلی ندارد.
54
00:01:42,240 –> 00:01:44,479
55
00:01:44,479 –> 00:01:47,680
56
00:01:47,680 –> 00:01:48,320
57
00:01:48,320 –> 00:01:50,000
58
00:01:50,000 –> 00:01:52,240
یک نقطه شکست قرار دهید
59
00:01:52,240 –> 00:01:54,399
و در واقع من آن را بالای نظر j قرار می دهم
60
00:01:54,399 –> 00:01:55,520
بنابراین
61
00:01:55,520 –> 00:01:58,479
اینجاست و من میخواهم اگر روی یک
62
00:01:58,479 –> 00:02:00,479
نسخه قدیمی پایتون کار میکنید، باید از
63
00:02:00,479 –> 00:02:02,399
این دستور نقطه شکست دستی استفاده کنید
64
00:02:02,399 –> 00:02:02,799
،
65
00:02:02,799 –> 00:02:06,479
وارد کردن pdb و سپس pdb.settrace را انجام دهید
66
00:02:06,479 –> 00:02:08,318
و اگر میتوانید آن را در دو خط بنویسید.
67
00:02:08,318 –> 00:02:10,160
بخواهید یا برخی از افراد دوست دارند
68
00:02:10,160 –> 00:02:14,959
import pdb.settrace بنویسند
69
00:02:14,959 –> 00:02:18,080
هر کدام از اینها کار می کند
70
00:02:18,080 –> 00:02:20,000
اما این روش قدیمی برای استفاده
71
00:02:20,000 –> 00:02:21,520
از اشکال زدا با این
72
00:02:21,520 –> 00:02:25,440
import دستی و تنظیم trace call um است
73
00:02:25,440 –> 00:02:27,200
و بسته به دیباگر خود
74
00:02:27,200 –> 00:02:28,959
از روش دیگری استفاده خواهید کرد. ماژول در اینجا یا
75
00:02:28,959 –> 00:02:30,160
یک فراخوانی دیگر مانند من معتقدم که
76
00:02:30,160 –> 00:02:31,840
77
00:02:31,840 –> 00:02:35,440
برای اشکالزدای pudp import است pudb.d اما در
78
00:02:35,440 –> 00:02:37,519
نسخههای جدید پایتون اکنون این
79
00:02:37,519 –> 00:02:39,200
نقطه شکست ساخته شده است که
80
00:02:39,200 –> 00:02:40,959
در پایتون 3.7 معرفی شده است
81
00:02:40,959 –> 00:02:42,800
و شما فقط میتوانید نقطه شکست را با والد والد تایپ کنید
82
00:02:42,800 –> 00:02:44,000
83
00:02:44,000 –> 00:02:46,239
و این کار را انجام میدهد. به طور پیش فرض همان
84
00:02:46,239 –> 00:02:48,879
ردیابی pdb pdb.set وارداتی است، اما متوجه شدم که
85
00:02:48,879 –> 00:02:50,319
می دانید تایپ
86
00:02:50,319 –> 00:02:52,400
کردن آن بسیار ساده تر است و به خاطر سپردن آن بسیار آسان تر است،
87
00:02:52,400 –> 00:02:54,720
همچنین می توانید نقطه شکست را سفارشی کنید،
88
00:02:54,720 –> 00:02:56,000
اوه داخلی، من قصد ندارم به آن
89
00:02:56,000 –> 00:02:57,200
بپردازم. این ویدیو من احتمالا یک ویدیوی دیگر را انجام خواهم داد
90
00:02:57,200 –> 00:02:58,000
eo به
91
00:02:58,000 –> 00:02:59,599
طور خاص در مورد نقطه شکست تعبیه شده
92
00:02:59,599 –> 00:03:00,879
است زیرا یک
93
00:03:00,879 –> 00:03:02,400
سری چیزهای جالب وجود دارد که می توانید
94
00:03:02,400 –> 00:03:03,920
با آن انجام دهید،
95
00:03:03,920 –> 00:03:05,280
اما برای این ویدیو ما فقط
96
00:03:05,280 –> 00:03:08,400
از چاپ نقطه شکست استفاده
97
00:03:08,400 –> 00:03:09,760
می کنیم، همچنین راه های دیگری برای
98
00:03:09,760 –> 00:03:11,920
فعال کردن اشکال زدا مانند شما وجود دارد. می توانید یک
99
00:03:11,920 –> 00:03:12,720
برنامه را
100
00:03:12,720 –> 00:03:14,800
با دیباگر خود اجرا کنید یا می توانید وارد یک
101
00:03:14,800 –> 00:03:16,080
حالت اشکال زدایی پس از مرگ شوید،
102
00:03:16,080 –> 00:03:17,440
من قصد ندارم آنها را مرور کنم اما
103
00:03:17,440 –> 00:03:19,519
یک ویدیو روی آنها انجام دادم بنابراین آن را در توضیحات پیوند خواهم داد
104
00:03:19,519 –> 00:03:21,200
105
00:03:21,200 –> 00:03:22,560
اما به هر حال اکنون که
106
00:03:22,560 –> 00:03:24,959
نقطه شکست خود را در اینجا داریم ما میتوانیم کد خود را اجرا کنیم، بنابراین
107
00:03:24,959 –> 00:03:26,159
من میخواهم
108
00:03:26,159 –> 00:03:28,000
اجرایی را فراخوانی کنم که اتفاقاً
109
00:03:28,000 –> 00:03:29,599
این کد را راهاندازی میکند، در این مورد، ما
110
00:03:29,599 –> 00:03:30,720
فقط میخواهیم همه فایلهای flake8 را از قبل
111
00:03:30,720 –> 00:03:34,400
اجرا کنیم و این باید
112
00:03:34,400 –> 00:03:35,519
آن
113
00:03:35,519 –> 00:03:37,680
عالی عالی را راهاندازی کند، بنابراین این چیزی است که شما انجام میدهید.
114
00:03:37,680 –> 00:03:39,040
می بینم وقتی
115
00:03:39,040 –> 00:03:42,159
در نقطه شکست هستید و در واقع
116
00:03:42,159 –> 00:03:44,799
نمی توانم به من اجازه بدهم
117
00:03:44,799 –> 00:03:46,000
صفحه نمایش را عوض کنم تا این صفحه روی صفحه دیگر باشد
118
00:03:46,000 –> 00:03:48,319
119
00:03:48,400 –> 00:03:52,000
عزیزم زبان های بسیار متعهد پایتون
120
00:03:52,000 –> 00:03:53,360
[موسیقی]
121
00:03:53,360 –> 00:03:55,599
در موقعیت نقطه شکست و سه
122
00:03:55,599 –> 00:03:57,840
کامیت اجرای flake 8
123
00:03:57,840 –> 00:03:59,920
همه فایل ها می توانید ببینید که ما در
124
00:03:59,920 –> 00:04:01,599
نقطه انفصال خود هستیم
125
00:04:01,599 –> 00:04:03,760
و db به طور کمکی به این نکته اشاره می کند که چه فایلی
126
00:04:03,760 –> 00:04:05,680
و چه شماره خطی و چه عملکردی
127
00:04:05,680 –> 00:04:07,200
در ابتدا شروع می شود، اما
128
00:04:07,200 –> 00:04:09,599
اطلاعات خیلی بیشتر از آن را نمی دهد
129
00:04:09,599 –> 00:04:10,959
130
00:04:10,959 –> 00:04:12,640
و من می روم برای مرور دستهای
131
00:04:12,640 –> 00:04:14,080
از دستورات، بنابراین در واقع
132
00:04:14,080 –> 00:04:15,200
شما را به یک خط فرمان کوچک میاندازد، در اینجا میخواهیم
133
00:04:15,200 –> 00:04:16,880
تعدادی از دستورات را مرور
134
00:04:16,880 –> 00:04:18,959
135
00:04:18,959 –> 00:04:20,478
136
00:04:20,478 –> 00:04:22,639
کنیم. اگر میخواهید خودتان را بیرون بیاورید،
137
00:04:22,639 –> 00:04:24,400
اما در این مرحله
138
00:04:24,400 –> 00:04:26,000
چندین کار وجود دارد که میخواهید برای
139
00:04:26,000 –> 00:04:27,040
اولین بار انجام دهید
140
00:04:27,040 –> 00:04:29,199
و یکی از آنها این است که کمک به
141
00:04:29,199 –> 00:04:31,360
شما فهرستی از همه دستورات مختلف را ارائه میکند
142
00:04:31,360 –> 00:04:32,960
و در واقع میتوانید آنها را تمرین کنید. هرکدام از
143
00:04:32,960 –> 00:04:35,040
آنها خودتان تعداد کمی هستند و
144
00:04:35,040 –> 00:04:36,880
خوشبختانه بسیاری از آنها نام مستعار
145
00:04:36,880 –> 00:04:38,560
دارند، برای مثال
146
00:04:38,560 –> 00:04:41,040
n یک نام مستعار برای next است و q نام مستعار
147
00:04:41,040 –> 00:04:42,080
برای خروج از
148
00:04:42,080 –> 00:04:45,280
um است، ما کمی بعد به آن خواهیم پرداخت و
149
00:04:45,280 –> 00:04:48,639
اوه آن دستورات خاص در یک
150
00:04:48,639 –> 00:04:51,680
در حال حاضر دو راه وجود دارد که می توانید از آن
151
00:04:51,680 –> 00:04:52,400
خارج شوید از
152
00:04:52,400 –> 00:04:54,479
pdf و من فکر می کنم ترک یادگیری نحوه
153
00:04:54,479 –> 00:04:55,840
ترک کردن احتمالاً مهم ترین
154
00:04:55,840 –> 00:04:58,560
چیزی است که ابتدا باید یاد بگیریم،
155
00:04:58,560 –> 00:05:00,639
یکی از آنها این است که فقط به
156
00:05:00,639 –> 00:05:01,600
اجرای کد خود
157
00:05:01,600 –> 00:05:05,600
ادامه دهید و آن را تا بی نهایت ادامه دهید و این
158
00:05:05,600 –> 00:05:07,600
کار با c انجام می شود که به اختصار
159
00:05:07,600 –> 00:05:09,199
ادامه می دهد شما می توانید همچنین
160
00:05:09,199 –> 00:05:12,080
ادامه را به طور کامل تایپ کنید و متوجه می شوید که
161
00:05:12,080 –> 00:05:13,919
اشکال زدایی را متوقف کنید و
162
00:05:13,919 –> 00:05:15,600
بقیه کد خود را اجرا کنید.
163
00:05:15,600 –> 00:05:17,360
گزینه دیگری که در اینجا
164
00:05:17,360 –> 00:05:19,919
دارید خروج سخت است و می توانید این کار را با q
165
00:05:19,919 –> 00:05:23,840
یا quit انجام دهید و این باعث می
166
00:05:23,840 –> 00:05:26,479
شود استثنا و رنگدانه خروج bdb ایجاد شود. اینجا یک
167
00:05:26,479 –> 00:05:27,440
لاگ ویژه دارد که
168
00:05:27,440 –> 00:05:29,120
آن را می بلعد، اما به طور معمول شما یک
169
00:05:29,120 –> 00:05:30,759
stack trace را می بینید و می بینید که bdb.b2b خروج را می بینید
170
00:05:30,759 –> 00:05:33,440
، این همان چیزی است
171
00:05:33,440 –> 00:05:34,240
که وقتی
172
00:05:34,240 –> 00:05:37,280
شما از دیباگر خارج می
173
00:05:37,280 –> 00:05:39,840
174
00:05:39,840 –> 00:05:41,280
شوید اتفاق می افتد. چگونه می توانید
175
00:05:41,280 –> 00:05:42,240
از آن
176
00:05:42,240 –> 00:05:44,479
خلاص شوید، سوال دیگری که همیشه
177
00:05:44,479 –> 00:05:46,080
هنگام شروع اشکال زدایی برای من پیش می آید،
178
00:05:46,080 –> 00:05:49,120
مشکلی نیست، به نوعی فراموش می کنم کجا هستم،
179
00:05:49,120 –> 00:05:50,479
اجازه دهید بفهمم کجا هستم و چه کاری
180
00:05:50,479 –> 00:05:52,000
می توانید انجام دهید این است که می توانید
181
00:05:52,000 –> 00:05:55,360
لیست را تایپ کنید یا فقط من و این کار خواهد شد
182
00:05:55,360 –> 00:05:57,039
اکنون خطوط کد را در اطراف جایی که
183
00:05:57,039 –> 00:05:59,280
قرار است اجرا شود به شما نشان می دهد، توجه داشته باشید که هنوز
184
00:05:59,280 –> 00:06:00,800
این خط را اجرا نکرده است، این فلش کوچک
185
00:06:00,800 –> 00:06:02,960
به جایی که قرار است یک خط را اجرا کند، نشان می
186
00:06:02,960 –> 00:06:04,880
دهد، بنابراین می توانید ببینید که ما در شرف اجرای exe
187
00:06:04,880 –> 00:06:07,680
برابر با find sys اجرایی هستیم.
188
00:06:07,680 –> 00:06:09,680
و اگر لیست را دوباره تایپ کنید متوجه خواهید شد
189
00:06:09,680 –> 00:06:12,000
که
190
00:06:12,000 –> 00:06:13,840
از این نقطه به بعد لیست بقیه فایل را ادامه می دهد و
191
00:06:13,840 –> 00:06:14,560
بنابراین می بینید
192
00:06:14,560 –> 00:06:17,600
که می دانید اگر به این نگاه کنید
193
00:06:17,600 –> 00:06:20,400
این همان چیزی است که با دیدن کد منبع می دانید
194
00:06:20,400 –> 00:06:22,000
اکنون در این سمت از
195
00:06:22,000 –> 00:06:23,759
صفحه نمایش البته
196
00:06:23,759 –> 00:06:25,919
بدیهی است که چند خط در وسط وجود دارد،
197
00:06:25,919 –> 00:06:27,360
اما به شما امکان می دهد کد منبع را اسکن کنید،
198
00:06:27,360 –> 00:06:28,240
199
00:06:28,240 –> 00:06:29,520
چیزی که من متوجه نشدم که شما
200
00:06:29,520 –> 00:06:31,759
برای مدت طولانی می توانید انجام دهید این است که می توانید
201
00:06:31,759 –> 00:06:34,080
دوباره لیست را تا این مرحله پشتیبان بگیرید، بنابراین
202
00:06:34,080 –> 00:06:35,520
شاید شما کارهای دیگری انجام داده
203
00:06:35,520 –> 00:06:39,039
باشید، شاید کارهای دیگری را
204
00:06:39,039 –> 00:06:40,479
در اینجا انجام داده باشید و به نوعی مسیر
205
00:06:40,479 –> 00:06:42,720
خود را در این کد منبع گم کرده
206
00:06:42,720 –> 00:06:46,319
باشید، می توانید لیست نقطه را تایپ کنید و این
207
00:06:46,319 –> 00:06:49,199
دوباره انجام می شود شما را به جایی
208
00:06:49,199 –> 00:06:50,880
که کد در حال اجرا بود برگردانید تا آن نقطه
209
00:06:50,880 –> 00:06:52,319
وارد شود
210
00:06:52,319 –> 00:06:54,160
همچنین لیست طولانیتری وجود دارد که به
211
00:06:54,160 –> 00:06:55,840
شما یک تکه کد بزرگتر میدهد و
212
00:06:55,840 –> 00:06:56,639
میتوانید با
213
00:06:56,639 –> 00:07:00,319
تایپ ll این کار را انجام دهید، من در واقع نمیدانم آیا
214
00:07:00,319 –> 00:07:02,240
دستور دیگری برای آن وجود دارد یا خیر، اما من
215
00:07:02,240 –> 00:07:04,000
معمولاً آن را انجام میدهم
216
00:07:04,000 –> 00:07:06,319
و به شما نشان میدهد که
217
00:07:06,319 –> 00:07:07,599
تکه بزرگتر کد در اطراف جایی که در حال اجرای آن هستید
218
00:07:07,599 –> 00:07:09,360
219
00:07:09,360 –> 00:07:10,960
کار دیگری که می توانید برای پیدا کردن
220
00:07:10,960 –> 00:07:13,199
محل اجرا انجام دهید این است
221
00:07:13,199 –> 00:07:16,240
که در جایی تایپ کنید که به شما یک ردپای پشته
222
00:07:16,240 –> 00:07:16,880
به جایی
223
00:07:16,880 –> 00:07:18,479
که در حال حاضر در حال اجرا هستید می دهد تا
224
00:07:18,479 –> 00:07:20,960
بتوانید مانند یک تماس را ببینید. پشته ای از
225
00:07:20,960 –> 00:07:22,80