در این مطلب، ویدئو دامنه ها و آرگومان ها در پایتون – 22 | آموزش پایتون برای مبتدیان | برنامه نویسی پایتون | Simplile Learn با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:18:44
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:07,919 –> 00:00:09,360
سلام به همه
2
00:00:09,360 –> 00:00:10,880
خوش آمدید به ویدیوی دیگری در مورد
3
00:00:10,880 –> 00:00:13,040
سری ویدیوهای پایتون به سادگی با قرض دادن
4
00:00:13,040 –> 00:00:14,880
5
00:00:14,880 –> 00:00:16,960
6
00:00:16,960 –> 00:00:18,320
7
00:00:18,320 –> 00:00:19,760
8
00:00:19,760 –> 00:00:22,000
9
00:00:22,000 –> 00:00:24,640
لطفاً بررسی کنید
10
00:00:24,640 –> 00:00:26,320
اکنون بیایید در مورد
11
00:00:26,320 –> 00:00:28,400
دامنه در پایتون یاد بگیریم،
12
00:00:28,400 –> 00:00:30,160
بنابراین scope در پایتون ناحیه ای از
13
00:00:30,160 –> 00:00:32,238
منطقه برنامه است که در آن می توانید به
14
00:00:32,238 –> 00:00:35,200
توابع متغیرها و اشیاء اعلام
15
00:00:35,200 –> 00:00:37,040
16
00:00:37,040 –> 00:00:39,520
17
00:00:39,520 –> 00:00:41,920
شده دسترسی داشته باشید. از هر نقطه ای در برنامه،
18
00:00:41,920 –> 00:00:44,239
متغیرها برای کل کد قابل مشاهده نیستند،
19
00:00:44,239 –> 00:00:46,160
بنابراین اکنون می توان دید آنها را
20
00:00:46,160 –> 00:00:47,680
محدود
21
00:00:47,680 –> 00:00:50,640
22
00:00:50,640 –> 00:00:51,840
23
00:00:51,840 –> 00:00:53,760
کرد.
24
00:00:53,760 –> 00:00:55,760
25
00:00:55,760 –> 00:00:57,440
26
00:00:57,440 –> 00:00:58,879
27
00:00:58,879 –> 00:01:00,960
هر زمان که از نامی مانند
28
00:01:00,960 –> 00:01:03,120
نام متغیر یا نام تابع استفاده می کنید،
29
00:01:03,120 –> 00:01:04,720
پایتون در سطوح مختلف دامنه
30
00:01:04,720 –> 00:01:06,640
یا فضاهای نام به d جستجو می کند.
31
00:01:06,640 –> 00:01:09,040
تعیین کنید که آیا نام وجود دارد یا نه،
32
00:01:09,040 –> 00:01:11,920
بنابراین پایتون با استفاده از قانون legb، نام ها را حل می کند.
33
00:01:11,920 –> 00:01:15,360
legb مخفف محلی
34
00:01:15,360 –> 00:01:19,680
محصور جهانی و دامنه داخلی است،
35
00:01:19,680 –> 00:01:22,080
اکنون در مورد محدوده محلی صحبت می کنیم،
36
00:01:22,080 –> 00:01:23,439
متغیرهایی که در تابع تعریف شده
37
00:01:23,439 –> 00:01:25,119
اند، محدوده محلی متغیر نامیده می
38
00:01:25,119 –> 00:01:27,040
شوند، بنابراین این متغیرها
39
00:01:27,040 –> 00:01:29,360
در بدن تابع تعریف شده اند و
40
00:01:29,360 –> 00:01:30,799
اکنون در مورد دامنه محصور صحبت می کنیم،
41
00:01:30,799 –> 00:01:32,400
42
00:01:32,400 –> 00:01:34,640
اکنون این محدوده فقط برای توابع تو در تو وجود دارد
43
00:01:34,640 –> 00:01:36,880
اگر دامنه محلی یک
44
00:01:36,880 –> 00:01:38,720
تابع درونی یا تودرتو باشد، سپس دامنه محصور
45
00:01:38,720 –> 00:01:40,720
محدوده تابع بیرونی یا
46
00:01:40,720 –> 00:01:42,799
محصور است
47
00:01:42,799 –> 00:01:44,079
که به
48
00:01:44,079 –> 00:01:45,920
دامنه جهانی می رسد
49
00:01:45,920 –> 00:01:47,920
متغیری که می تواند از
50
00:01:47,920 –> 00:01:50,079
هر نقطه ای در برنامه به عنوان دامنه جهانی شناخته می شود،
51
00:01:50,079 –> 00:01:52,799
چنین متغیرهایی را می توان
52
00:01:52,799 –> 00:01:54,720
در داخل یا خارج از تابع خواند،
53
00:01:54,720 –> 00:01:56,079
اکنون دامنه جهانی اغلب
54
00:01:56,079 –> 00:01:57,759
زمانی پیاده سازی می شود که می خواهیم از همان
55
00:01:57,759 –> 00:02:01,119
نام متغیر در بقیه برنامه استفاده کنیم
56
00:02:01,119 –> 00:02:02,880
و به
57
00:02:02,880 –> 00:02:05,360
قانون نهایی می رسیم. که b است که در محدوده ساخته شده
58
00:02:05,360 –> 00:02:08,399
است، بنابراین اگر یک متغیر در
59
00:02:08,399 –> 00:02:10,560
محدوده محلی یا سراسری تعریف نشده باشد،
60
00:02:10,560 –> 00:02:12,080
پایتون آن را در ساخته شده جستجو می کند. -in
61
00:02:12,080 –> 00:02:14,720
scope now این محدوده شامل نام هایی
62
00:02:14,720 –> 00:02:17,360
مانند استثناهای توابع کلمات کلیدی و
63
00:02:17,360 –> 00:02:18,800
سایر ویژگی هایی است که اکنون در
64
00:02:18,800 –> 00:02:20,080
پایتون تعبیه شده اند،
65
00:02:20,080 –> 00:02:22,000
اگر نام متغیر یکسانی را
66
00:02:22,000 –> 00:02:24,160
در داخل و خارج از یک تابع تعریف کنید،
67
00:02:24,160 –> 00:02:26,720
پایتون آنها را به عنوان متغیرهای جداگانه در نظر می گیرد، بنابراین
68
00:02:26,720 –> 00:02:28,800
دو متغیر جداگانه یکی در دسترس است.
69
00:02:28,800 –> 00:02:30,239
دامنه جهانی که خارج از
70
00:02:30,239 –> 00:02:31,920
تابع است و دیگری موجود در
71
00:02:31,920 –> 00:02:34,480
محدوده محلی که در داخل تابع است،
72
00:02:34,480 –> 00:02:36,080
اکنون اجازه دهید به
73
00:02:36,080 –> 00:02:38,319
نوت بوک مشتری خود برویم و
74
00:02:38,319 –> 00:02:39,760
دامنه های موجود در پایتون را با نمایش های عملی امتحان
75
00:02:39,760 –> 00:02:41,840
76
00:02:41,840 –> 00:02:43,760
می کنیم، بنابراین من در ژوپیتر خود هستم. نوت بوک
77
00:02:43,760 –> 00:02:45,280
بیایید با
78
00:02:45,280 –> 00:02:49,200
مثال های خود شروع کنیم ابتدا به
79
00:02:49,200 –> 00:02:52,239
محدوده محلی در پایتون نگاه می
80
00:02:52,239 –> 00:02:54,160
کنیم که من یک تابع
81
00:02:54,160 –> 00:02:55,280
به نام
82
00:02:55,280 –> 00:02:57,360
fun
83
00:02:57,360 –> 00:02:58,400
84
00:02:58,400 –> 00:02:59,760
ایجاد می کنم و در داخل تابع
85
00:02:59,760 –> 00:03:01,840
متغیری به نام
86
00:03:01,840 –> 00:03:03,360
s ایجاد می کنم که
87
00:03:03,360 –> 00:03:04,959
نگه می دارد فرض کنید
88
00:03:04,959 –> 00:03:06,800
یک شی به نام
89
00:03:06,800 –> 00:03:08,239
ساده loan
90
00:03:08,239 –> 00:03:09,680
و سپس
91
00:03:09,680 –> 00:03:11,680
i می خواهم
92
00:03:11,680 –> 00:03:12,959
93
00:03:12,959 –> 00:03:14,959
متغیری را که s now است چاپ کنم،
94
00:03:14,959 –> 00:03:17,120
در این مورد،
95
00:03:17,120 –> 00:03:18,959
متغیر خود را
96
00:03:18,959 –> 00:03:21,599
در داخل تابع تعریف کرده ام، بنابراین اگر بتوانم اکنون
97
00:03:21,599 –> 00:03:23,840
فقط
98
00:03:23,840 –> 00:03:25,360
در داخل تابع قابل دسترسی
99
00:03:25,360 –> 00:03:27,200
باشد. تابع را با استفاده از
100
00:03:27,200 –> 00:03:30,319
نام تابع که f u n است
101
00:03:30,319 –> 00:03:33,920
و اگر آن را اجرا کنیم، میبینیم که
102
00:03:33,920 –> 00:03:36,480
پیامی را چاپ کردهایم که به سادگی شناخته شده است،
103
00:03:36,480 –> 00:03:38,560
اکنون
104
00:03:38,560 –> 00:03:41,040
نمونه دیگری خواهیم دید،
105
00:03:41,040 –> 00:03:43,680
بنابراین فرض
106
00:03:44,000 –> 00:03:46,000
کنید سعی میکنیم خارج از تابع به آن دسترسی پیدا کنیم.
107
00:03:46,000 –> 00:03:48,080
خطا، بنابراین من
108
00:03:48,080 –> 00:03:50,959
فقط یک نظر می دهم سعی کنید
109
00:03:50,959 –> 00:03:53,680
به
110
00:03:54,480 –> 00:03:56,159
آن
111
00:03:56,159 –> 00:03:59,040
خارج از تابع دسترسی پیدا کنید،
112
00:03:59,280 –> 00:04:00,480
113
00:04:00,480 –> 00:04:02,799
بنابراین دوباره
114
00:04:02,799 –> 00:04:04,879
یک تابع به نام اجازه دهید بگوییم
115
00:04:04,879 –> 00:04:07,360
سرگرم کننده 1 ایجاد
116
00:04:07,360 –> 00:04:10,239
می کنم، یک دونقطه می دهم و در اینجا می
117
00:04:10,239 –> 00:04:11,599
گویم فرض کنید
118
00:04:11,599 –> 00:04:17,040
s1 برابر است با قرض
119
00:04:17,120 –> 00:04:19,120
و
120
00:04:19,120 –> 00:04:23,280
حالا من یک نظر در اینجا می دهم print s1
121
00:04:23,280 –> 00:04:25,120
سپس تابع خود را
122
00:04:25,120 –> 00:04:27,120
f u n 1 صدا می
123
00:04:27,120 –> 00:04:28,720
124
00:04:28,720 –> 00:04:30,720
زنم و سعی می کنم
125
00:04:30,720 –> 00:04:32,160
126
00:04:32,160 –> 00:04:34,160
متغیر s1 را
127
00:04:34,160 –> 00:04:37,360
خارج از تابع چاپ کنم بنابراین اینجا
128
00:04:37,360 –> 00:04:39,280
s1 یک محدوده محلی دارد زیرا در داخل تابع تعریف شده
129
00:04:39,280 –> 00:04:41,680
است اما من هستم تلاش برای
130
00:04:41,680 –> 00:04:43,600
دسترسی به متغیر خارج از تابع
131
00:04:43,600 –> 00:04:44,880
اجازه دهید آن را اجرا کنیم،
132
00:04:44,880 –> 00:04:47,600
میتوانید خطای اینجا را ببینید که نام s1
133
00:04:47,600 –> 00:04:49,040
تعریف نشده است.
134
00:04:49,040 –> 00:04:50,240
135
00:04:50,240 –> 00:04:52,080
136
00:04:52,080 –> 00:04:53,199
137
00:04:53,199 –> 00:04:54,720
138
00:04:54,720 –> 00:04:56,639
139
00:04:56,639 –> 00:04:58,400
140
00:04:58,400 –> 00:05:00,880
141
00:05:00,880 –> 00:05:03,039
پیام متغیر s1 را چاپ کنید که به
142
00:05:03,039 –> 00:05:06,240
سادگی به عنوان t شناخته می شود او این است که
143
00:05:06,240 –> 00:05:10,560
محدوده محلی یک تابع چگونه کار می کند،
144
00:05:10,560 –> 00:05:13,039
حالا بیایید نمونه ای از
145
00:05:13,039 –> 00:05:16,479
محدوده محصور را ببینیم که
146
00:05:16,479 –> 00:05:21,000
تابعی در داخل یک تابع دیگر است،
147
00:05:24,160 –> 00:05:27,600
بنابراین من یک تابع ایجاد
148
00:05:27,600 –> 00:05:31,199
می کنم مثلاً func
149
00:05:31,600 –> 00:05:33,280
150
00:05:33,280 –> 00:05:36,080
و از متغیر این بار s2 برابر
151
00:05:36,080 –> 00:05:37,520
با
152
00:05:37,520 –> 00:05:40,240
loan
153
00:05:41,120 –> 00:05:42,320
و سپس استفاده می کنم.
154
00:05:42,320 –> 00:05:44,800
در داخل تابع func من
155
00:05:44,800 –> 00:05:47,520
یک تابع دیگر را تعریف می کنم، فرض کنید
156
00:05:47,520 –> 00:05:50,080
i n func که در اصل مخفف
157
00:05:50,080 –> 00:05:50,840
158
00:05:50,840 –> 00:05:56,240
عملکرد داخلی است و سپس در اینجا می گویم print s
159
00:05:56,639 –> 00:05:58,720
s2
160
00:05:58,720 –> 00:06:00,080
و
161
00:06:00,080 –> 00:06:01,360
162
00:06:01,360 –> 00:06:03,680
تابع داخلی را که در
163
00:06:03,680 –> 00:06:05,199
fu و c است
164
00:06:05,199 –> 00:06:08,880
و سپس من را فراخوانی می کنم. تابع بیرونی
165
00:06:08,880 –> 00:06:10,479
بیایید آن را اجرا کنیم
166
00:06:10,479 –> 00:06:13,360
و نتیجه
167
00:06:13,440 –> 00:06:15,680
را ببینیم، میتوانید در اینجا ببینید ما پیام را چاپ کردهایم به
168
00:06:15,680 –> 00:06:16,800
169
00:06:16,800 –> 00:06:19,280
سادگی یاد بگیرید من فقط
170
00:06:19,280 –> 00:06:22,000
این پیام را ویرایش میکنم بیایید بگوییم
171
00:06:22,000 –> 00:06:23,919
به سادگی به قرض گرفتن خوش آمدید،
172
00:06:23,919 –> 00:06:25,360
اگر این را اجرا کردم،
173
00:06:25,360 –> 00:06:27,280
میتوانید ببینید که اکنون پیام را
174
00:06:27,280 –> 00:06:28,960
در اینجا
175
00:06:28,960 –> 00:06:29,759
176
00:06:29,759 –> 00:06:31,680
برای محدوده بسته بهروزرسانی کردهایم شما باید
177
00:06:31,680 –> 00:06:33,360
یک تابع بیرونی از جمله
178
00:06:33,360 –> 00:06:34,960
تابع داخلی تعریف کنید مانند آنچه
179
00:06:34,960 –> 00:06:36,080
در اینجا انجام دادیم
180
00:06:36,080 –> 00:06:38,400
و همچنین می توانید
181
00:06:38,400 –> 00:06:40,400
متغیر محلی تابع داخلی را نظر دهید و
182
00:06:40,400 –> 00:06:42,720
با استفاده از
183
00:06:42,720 –> 00:06:45,120
کلمه کلیدی غیرمحلی به متغیر مراجعه کنید، اجازه دهید مثالی را به شما نشان دهم.
184
00:06:45,120 –> 00:06:46,560
در اطراف این
185
00:06:46,560 –> 00:06:49,280
فرض کنید من یک
186
00:06:49,280 –> 00:06:52,080
متغیر جهانی به نام msg
187
00:06:52,080 –> 00:06:55,840
دارم، می بینم که این یک
188
00:06:55,840 –> 00:06:57,440
189
00:06:57,440 –> 00:06:58,960
190
00:06:58,960 –> 00:07:00,720
پیام دامنه جهانی است،
191
00:07:00,720 –> 00:07:02,400
پس از آن
192
00:07:02,400 –> 00:07:05,120
من یک تابع ایجاد می کنم، بنابراین یک
193
00:07:05,120 –> 00:07:06,639
تابع به نام
194
00:07:06,639 –> 00:07:08,400
outer تعریف می
195
00:07:08,400 –> 00:07:09,440
196
00:07:09,440 –> 00:07:11,520
کنم و از همان نام متغیر استفاده می کنم که
197
00:07:11,520 –> 00:07:13,280
msg
198
00:07:13,280 –> 00:07:17,280
و پیام من این خواهد بود که این یک
199
00:07:17,280 –> 00:07:20,080
متغیر بیرونی است و
200
00:07:25,840 –> 00:07:28,400
پس از آن
201
00:07:28,400 –> 00:07:31,280
من می خواهم تابع دیگری
202
00:07:31,280 –> 00:07:32,639
به نام
203
00:07:32,639 –> 00:07:35,039
inner تعریف کنم
204
00:07:35,039 –> 00:07:36,960
و
205
00:07:36,960 –> 00:07:39,680
206
00:07:40,639 –> 00:07:43,039
این همان متغیری است که msg است و
207
00:07:43,039 –> 00:07:45,360
پیام من متغیر پیام داخلی خواهد بود
208
00:07:45,360 –> 00:07:47,599
209
00:07:47,599 –> 00:07:49,120
210
00:07:49,120 –> 00:07:51,599
211
00:07:52,160 –> 00:07:54,879
اکنون همانطور که قبلاً ذکر کردم باید
212
00:07:54,879 –> 00:07:56,240
نظر بدهم.
213
00:07:56,240 –> 00:07:58,000
متغیر محلی تابع داخلی، بنابراین
214
00:07:58,000 –> 00:08:00,000
من فقط
215
00:08:00,000 –> 00:08:02,000
این را نظر می
216
00:08:02,000 –> 00:08:04,400
217
00:08:05,039 –> 00:08:07,280
دهم و سپس می خواهم بگویم
218
00:08:07,280 –> 00:08:11,039
غیر محلی که صفحه کلید است،
219
00:08:11,039 –> 00:08:11,919
بنابراین من
220
00:08:11,919 –> 00:08:13,280
به متغیر با استفاده از
221
00:08:13,280 –> 00:08:14,800
کلمه کلیدی غیر محلی اشاره می
222
00:08:14,800 –> 00:08:16,479
کنم و می گویم متغیر غیر محلی
223
00:08:16,479 –> 00:08:19,440
نامی که msg است
224
00:08:19,440 –> 00:08:21,759
و حالا
225
00:08:21,759 –> 00:08:22,800
من
226
00:08:22,800 –> 00:08:26,360
پرینت میکنم msg
227
00:08:28,160 –> 00:08:30,000
از تابع خارج میشود و
228
00:08:30,000 –> 00:08:31,759
ما آن را
229
00:08:31,759 –> 00:08:34,159
درونی صدا
230
00:08:34,559 –> 00:08:37,360
میزنیم پس از آن تابع خارجی را فراخوانی میکنیم
231
00:08:37,360 –> 00:08:38,799
232
00:08:38,799 –> 00:08:40,958
و سپس چاپ میکنم، فقط
233
00:08:40,958 –> 00:08:42,719
این را به پایین اسکرول
234
00:08:42,719 –> 00:08:45,200
میکنیم و ما پیام میگویم،
235
00:08:45,200 –> 00:08:47,680
بنابراین در اینجا کاری که ما انجام میدهیم این است که این
236
00:08:47,680 –> 00:08:50,640
یک مثال است e یک محدوده محصور شده است، بنابراین در جایی که
237
00:08:50,640 –> 00:08:52,480
ما
238
00:08:52,480 –> 00:08:55,519
تابع بیرونی را که تابع
239
00:08:55,519 –> 00:08:58,000
داخلی را در بر می گیرد تعریف کرده ایم و
240
00:08:58,000 –> 00:09:00,080
متغیر محلی تابع داخلی را توضیح داده
241
00:09:00,080 –> 00:09:01,440
ایم و به متغیر
242
00:09: