در این مطلب، ویدئو چرا نباید از کلمه کلیدی جهانی در پایتون استفاده کنید؟ با زیرنویس فارسی را برای دانلود قرار داده ام. شما میتوانید با پرداخت 15 هزار تومان ، این ویدیو به علاوه تمامی فیلم های سایت را دانلود کنید.اکثر فیلم های سایت به زبان انگلیسی می باشند. این ویدئو دارای زیرنویس فارسی ترجمه شده توسط هوش مصنوعی می باشد که میتوانید نمونه ای از آن را در قسمت پایانی این مطلب مشاهده کنید.
مدت زمان فیلم: 00:17:58
تصاویر این ویدئو:
قسمتی از زیرنویس این فیلم:
00:00:02,860 –> 00:00:05,970
[موسیقی]
2
00:00:08,639 –> 00:00:10,480
سلام به همه و به یک ویدیوی دیگر از یوتیوب خوش آمدید،
3
00:00:10,480 –> 00:00:11,679
4
00:00:11,679 –> 00:00:13,280
بنابراین در ویدیوی امروز می خواهم در
5
00:00:13,280 –> 00:00:16,160
مورد کلمه کلیدی جهانی در پایتون بحث
6
00:00:16,160 –> 00:00:18,000
کنم که چرا به طور کلی توصیه می شود
7
00:00:18,000 –> 00:00:20,000
اکنون از آن استفاده نکنید، دلیل اینکه من
8
00:00:20,000 –> 00:00:20,720
این ویدیو را
9
00:00:20,720 –> 00:00:23,039
می سازم اغلب مردم هستند. مثل خود من
10
00:00:23,039 –> 00:00:24,800
فقط چیزی را ذکر خواهم کرد یا خواهم گفت که
11
00:00:24,800 –> 00:00:27,119
هرگز از کلمه کلیدی جهانی استفاده نکنید، اکنون این
12
00:00:27,119 –> 00:00:28,720
بسیار ناامید کننده است، به خصوص برای کسی
13
00:00:28,720 –> 00:00:29,599
که مبتدی است،
14
00:00:29,599 –> 00:00:30,880
زیرا معمولاً خودمان را توضیح نمی دهیم
15
00:00:30,880 –> 00:00:32,640
و بحث نمی کنیم که چرا
16
00:00:32,640 –> 00:00:33,920
واقعاً در مورد آنچه جهانی است صحبت نمی کنیم.
17
00:00:33,920 –> 00:00:36,160
کلمه کلیدی این کار را انجام می دهد بسیاری از مردم
18
00:00:36,160 –> 00:00:37,680
در مورد این کلمه کلیدی می یابند و
19
00:00:37,680 –> 00:00:38,480
سپس به آنها گفته می شود که
20
00:00:38,480 –> 00:00:40,320
هرگز بدون هیچ دلیل منطقی از آن استفاده نکنید،
21
00:00:40,320 –> 00:00:42,399
بنابراین من می خواهم
22
00:00:42,399 –> 00:00:44,000
در مورد اینکه چرا در واقع
23
00:00:44,000 –> 00:00:46,079
نباید از آن استفاده کنید صحبت کنم و به شما توضیح دهم که چگونه دقیقاً از آن استفاده کنید.
24
00:00:46,079 –> 00:00:47,520
کار می کند زیرا
25
00:00:47,520 –> 00:00:49,039
به این توضیح کمک می کند،
26
00:00:49,039 –> 00:00:50,879
بنابراین بیایید شروع کنیم. من
27
00:00:50,879 –> 00:00:52,399
با توضیح کلمات کلیدی جهانی شروع
28
00:00:52,399 –> 00:00:53,680
می کنم اولین کاری که می خواهم انجام دهم این است که
29
00:00:53,680 –> 00:00:54,879
متغیری به نام x
30
00:00:54,879 –> 00:00:56,800
this is going t تعریف کنم. o برابر 0 باشد سپس
31
00:00:56,800 –> 00:00:58,399
تابعی به نام foo را
32
00:00:58,399 –> 00:00:59,920
در داخل اینجا پیدا می کنم، می خواهم بگویم x برابر
33
00:00:59,920 –> 00:01:01,840
4 است. سپس x را چاپ
34
00:01:01,840 –> 00:01:05,119
می کنم، foo را می خواهم
35
00:01:05,119 –> 00:01:05,840
چاپ کنم x
36
00:01:05,840 –> 00:01:08,320
حالا یک بار دیگر حدس بزنید که من
37
00:01:08,320 –> 00:01:09,360
این برنامه
38
00:01:09,360 –> 00:01:11,119
را اجرا خواهم کرد، فکر می کنید خروجی آن چه خواهد
39
00:01:11,119 –> 00:01:12,799
بود، بنابراین وقتی این را اجرا
40
00:01:12,799 –> 00:01:15,280
می کنم 0 0 می گیرم. حالا ممکن است برخی از شما به
41
00:01:15,280 –> 00:01:16,880
درستی حدس زده باشید، زیرا
42
00:01:16,880 –> 00:01:17,920
به نظر شهودی می رسد
43
00:01:17,920 –> 00:01:19,759
که ما در واقع قرار بود 0 و سپس 4 را دریافت کنیم
44
00:01:19,759 –> 00:01:21,920
. و منطق پشت آن
45
00:01:21,920 –> 00:01:23,439
ممکن است چیزی شبیه
46
00:01:23,439 –> 00:01:25,600
x باشد، در اینجا تعریف شده است، بنابراین ما x
47
00:01:25,600 –> 00:01:27,520
برابر با صفر را چاپ می کنیم، سپس تابعی را
48
00:01:27,520 –> 00:01:29,360
که x را به 4 تبدیل می کند، فراخوانی
49
00:01:29,360 –> 00:01:31,040
می کنیم. باید x را برابر با چهار
50
00:01:31,040 –> 00:01:32,640
یا x چهار را چاپ
51
00:01:32,640 –> 00:01:34,560
کنیم، دلیل این که اینطور نیست این است
52
00:01:34,560 –> 00:01:36,320
که ما چیزی را داریم که به عنوان متغیرهای جهانی و محلی شناخته می شود
53
00:01:36,320 –> 00:01:39,200
x چیزی است که به عنوان متغیر جهانی شناخته می شود
54
00:01:39,200 –> 00:01:41,119
، دلیل اینکه
55
00:01:41,119 –> 00:01:42,159
متغیر جهانی
56
00:01:42,159 –> 00:01:43,840
است به این دلیل است که تعریف شده است. در
57
00:01:43,840 –> 00:01:45,520
محدوده این فایل
58
00:01:45,520 –> 00:01:47,119
و x چیزی است که به عنوان یک متغیر محلی شناخته می شود
59
00:01:47,119 –> 00:01:48,799
زیرا در Sco تعریف شده است.
60
00:01:48,799 –> 00:01:49,920
pe از این
61
00:01:49,920 –> 00:01:51,920
تابع بنابراین هر چیزی که در
62
00:01:51,920 –> 00:01:53,920
خط اصلی فایل ما تعریف شده باشد، بنابراین نه در یک
63
00:01:53,920 –> 00:01:55,439
تابع یا در یک
64
00:01:55,439 –> 00:01:58,240
کلاس، چیزی است که به عنوان جهانی شناخته می شود، هر چیزی در
65
00:01:58,240 –> 00:02:01,040
کل این فایل می تواند به این متغیر جهانی دسترسی داشته
66
00:02:01,040 –> 00:02:01,680
باشد،
67
00:02:01,680 –> 00:02:04,000
زیرا فقط در داخل فایل تعریف شده است
68
00:02:04,000 –> 00:02:06,240
نه در هیچ چیز خاصی.
69
00:02:06,240 –> 00:02:09,440
در فایل در حالی که x برابر است با 4 در خط 4
70
00:02:09,440 –> 00:02:10,318
در اینجا خوب
71
00:02:10,318 –> 00:02:13,200
این محلی برای تابع foo است، اکنون فقط
72
00:02:13,200 –> 00:02:14,080
73
00:02:14,080 –> 00:02:16,959
در این تابع قابل دسترسی است و قابل استفاده است تا به
74
00:02:16,959 –> 00:02:18,720
شما نشان دهد اگر به داخل اینجا بروم
75
00:02:18,720 –> 00:02:19,280
76
00:02:19,280 –> 00:02:21,520
و x را چاپ کنم اکنون شما می روید، منظورم چیست. برای دیدن
77
00:02:21,520 –> 00:02:22,560
اینکه ما میخواهیم 0
78
00:02:22,560 –> 00:02:25,599
4 0 را چاپ کنیم دلیل این امر این
79
00:02:25,599 –> 00:02:26,959
است که وقتی x را
80
00:02:26,959 –> 00:02:29,280
در اینجا چاپ می کنیم در مورد متغیر محلی
81
00:02:29,280 –> 00:02:30,239
82
00:02:30,239 –> 00:02:32,319
x x که در محدوده این تابع تعریف شده است
83
00:02:32,319 –> 00:02:34,160
84
00:02:34,160 –> 00:02:35,280
صحبت می کنیم. باید نگران
85
00:02:35,280 –> 00:02:37,519
معنای واقعی نام دامنه باشیم،
86
00:02:37,519 –> 00:02:39,280
اما تقریباً به ما میگوید که
87
00:02:39,280 –> 00:02:41,120
کجا چیزی تعریف شده است و اکنون باید
88
00:02:41,120 –> 00:02:43,360
به دنبال مقادیر خاصی
89
00:02:43,360 –> 00:02:45,519
90
00:02:45,519 –> 00:02:46,560
91
00:02:46,560 –> 00:02:48,879
بگردیم. ts من
92
00:02:48,879 –> 00:02:50,480
حذف x برابر با 4 است
93
00:02:50,480 –> 00:02:52,720
و سپس وقتی این تابع را فراخوانی میکنم این تابع را صدا میزنم و
94
00:02:52,720 –> 00:02:53,840
95
00:02:53,840 –> 00:02:56,480
اکنون 0 را چاپ میکنیم، چرا
96
00:02:56,480 –> 00:02:57,120
این مورد
97
00:02:57,120 –> 00:02:59,040
واقعاً خوب کار میکند و
98
00:02:59,040 –> 00:03:00,640
دلیل این کار این نیست زیرا
99
00:03:00,640 –> 00:03:02,400
بدیهی است که ما یک متغیر محلی x تعریف شدهایم.
100
00:03:02,400 –> 00:03:02,959
101
00:03:02,959 –> 00:03:05,440
به این دلیل که این x در اینجا جهانی است،
102
00:03:05,440 –> 00:03:07,440
این در محدوده جهانی
103
00:03:07,440 –> 00:03:08,400
تعریف شده است، فقط
104
00:03:08,400 –> 00:03:10,959
در خط اصلی فایل ما تعریف شده است، بنابراین هر
105
00:03:10,959 –> 00:03:11,519
تابعی
106
00:03:11,519 –> 00:03:13,360
که در محدوده این فایل نیز تعریف شده
107
00:03:13,360 –> 00:03:14,560
باشد،
108
00:03:14,560 –> 00:03:15,920
این تابع در
109
00:03:15,920 –> 00:03:18,080
محدوده این فایل تعریف شده است. میتوانیم به
110
00:03:18,080 –> 00:03:20,879
این متغیر x دسترسی داشته باشیم تا بتوانیم x را ببینیم و بتوانیم
111
00:03:20,879 –> 00:03:22,640
آن را پیدا کنیم، اما البته
112
00:03:22,640 –> 00:03:25,280
وقتی x را تغییر میدهم و میگویم x برابر 8 است
113
00:03:25,280 –> 00:03:26,239
114
00:03:26,239 –> 00:03:28,560
، به این ترتیب مقدار 8 را دریافت میکنیم.
115
00:03:28,560 –> 00:03:30,239
دلیل این کار زمانی است که من این کار
116
00:03:30,239 –> 00:03:32,159
را چاپ میکنم. دستور قرار است به
117
00:03:32,159 –> 00:03:33,920
این x نگاه کند نه در این
118
00:03:33,920 –> 00:03:36,159
x زیرا این نزدیکترین است،
119
00:03:36,159 –> 00:03:37,680
این محلی ترین
120
00:03:37,680 –> 00:03:40,480
تابع به این تابع در اینجا است، بنابراین امیدوارم
121
00:03:40,480 –> 00:03:41,680
که واضح باشد، اما وقتی می گویم
122
00:03:41,680 –> 00:03:45,280
x برابر 8 است، این x را
123
00:03:45,280 –> 00:03:45,680
در
124
00:03:45,680 –> 00:03:47,920
اینجا تغییر نمی دهم، در واقع این کار را انجام می دهم. ایجاد یک متغیر جدید
125
00:03:47,920 –> 00:03:49,360
که همچنین x نام دارد
126
00:03:49,360 –> 00:03:51,680
اما محلی است و در
127
00:03:51,680 –> 00:03:52,560
128
00:03:52,560 –> 00:03:54,720
محدوده این تابع تعریف شده است و به همین دلیل است که
129
00:03:54,720 –> 00:03:57,040
نمی توانم به این مقدار دسترسی پیدا کنم یا
130
00:03:57,040 –> 00:03:58,080
131
00:03:58,080 –> 00:04:01,120
وقتی x را خارج از تابع چاپ می کنم
132
00:04:01,120 –> 00:04:04,080
قبل یا بعد از فراخوانی آن، مقدار 8 را دریافت نمی کنم. اکنون
133
00:04:04,080 –> 00:04:05,519
امیدواریم که این واضح است، اما این
134
00:04:05,519 –> 00:04:07,120
تفاوت بین متغیرهای محلی و سراسری
135
00:04:07,120 –> 00:04:08,799
است که هر چیزی که در خط اصلی تعریف
136
00:04:08,799 –> 00:04:09,519
137
00:04:09,519 –> 00:04:11,599
شود معمولاً به عنوان جهانی شناخته می شود هر چیزی
138
00:04:11,599 –> 00:04:13,840
که در یک تابع یا یک کلاس تعریف شده باشد،
139
00:04:13,840 –> 00:04:15,920
تقریباً زمانی که تورفتگی داشته باشد، اما نه
140
00:04:15,920 –> 00:04:17,680
در داخل مانند یک دستور if یا حلقه برای
141
00:04:17,680 –> 00:04:19,519
که یک بدیهی
142
00:04:19,519 –> 00:04:20,798
است که یک
143
00:04:20,798 –> 00:04:22,240
متغیر محلی برای هر تابع یا
144
00:04:22,240 –> 00:04:23,040
کلاسی
145
00:04:23,040 –> 00:04:25,040
که در آن تعریف شده باشد، خواهد بود، بنابراین در واقع قبل از اینکه
146
00:04:25,040 –> 00:04:26,320
وارد کلمه کلیدی جهانی شوم،
147
00:04:26,320 –> 00:04:27,280
در اینجا به نوعی عقب نشینی
148
00:04:27,280 –> 00:04:29,360
می کنم، می خواهم کاری انجام دهم که به
149
00:04:29,360 –> 00:04:31,199
نوعی عجیب و غریب است. قبلاً این را ندیدهام
150
00:04:31,199 –> 00:04:33,040
اما فقط به من اعتماد کنید این کد پایتون معتبر است
151
00:04:33,040 –> 00:04:33,440
152
00:04:33,440 –> 00:04:35,440
اما واقعاً نشان میدهد که منظور من
153
00:04:35,440 –> 00:04:37,440
از محلی چیست و منظورم از جهانی
154
00:04:37,440 –> 00:04:38,639
چیست و وقتی در مورد این دکلهای scopes صحبت میکنم منظورم چیست.
155
00:04:38,639 –> 00:04:40,000
ht چون این یک موضوع گیج کننده به نظر می رسد،
156
00:04:40,000 –> 00:04:41,360
157
00:04:41,360 –> 00:04:43,759
بنابراین می خواهم بگویم x برابر با 2 در
158
00:04:43,759 –> 00:04:44,880
خط 4 است.
159
00:04:44,880 –> 00:04:47,520
من یک تابع را در داخل
160
00:04:47,520 –> 00:04:49,360
این تابع تعریف می کنم، این کار کاملاً معتبر است
161
00:04:49,360 –> 00:04:50,880
. می توانم این کار را انجام دهم بدون مشکل
162
00:04:50,880 –> 00:04:53,280
i’ m میخواهم بگویم این نوار نامیده میشود و
163
00:04:53,280 –> 00:04:54,400
در داخل
164
00:04:54,400 –> 00:04:57,440
اینجا میخواهم بگویم x برابر با 7 است
165
00:04:57,440 –> 00:05:00,880
و سپس x را به این صورت چاپ
166
00:05:00,880 –> 00:05:02,960
میکنم، حالا خارج از اینجا فقط
167
00:05:02,960 –> 00:05:04,639
تابع نوار را فراخوانی میکنم
168
00:05:04,639 –> 00:05:06,720
و سپس من “پس از
169
00:05:06,720 –> 00:05:07,840
فراخوانی تابع نوار، x را چاپ خواهم کرد،
170
00:05:07,840 –> 00:05:09,440
بنابراین در صورتی که قبل از اینکه نحو را ندیده باشید،
171
00:05:09,440 –> 00:05:11,199
این گیج کننده به نظر می رسد، من فقط
172
00:05:11,199 –> 00:05:12,320
تابعی را
173
00:05:12,320 –> 00:05:14,160
در داخل تابع دیگر خود تعریف می کنم،
174
00:05:14,160 –> 00:05:15,919
به این معنی که این تابع همان چیزی است که به
175
00:05:15,919 –> 00:05:16,880
عنوان محلی شناخته می شود.
176
00:05:16,880 –> 00:05:19,280
به این تابع، بنابراین من نمی
177
00:05:19,280 –> 00:05:20,800
توانم این تابع var را از
178
00:05:20,800 –> 00:05:22,240
خارج از تابع فراخوانی کنم، باید
179
00:05:22,240 –> 00:05:23,680
آن را از داخل فراخوانی کنم که این همان کاری است که من در اینجا انجام می دهم،
180
00:05:23,680 –> 00:05:24,160
181
00:05:24,160 –> 00:05:27,120
بنابراین نوار گنجانده شده است یا تماس به نوار
182
00:05:27,120 –> 00:05:28,960
با داخل تابع foo
183
00:05:28,960 –> 00:05:30,720
و تابع است. نوار در تابع foo تعریف شده است، به
184
00:05:30,720 –> 00:05:32,960
هر حال من x
185
00:05:32,960 –> 00:05:34,960
برابر با 2 در بالای تابع foo من
186
00:05:34,960 –> 00:05:36,160
است سمت نوار میگویم x
187
00:05:36,160 –> 00:05:38,800
برابر با 7 است x را چاپ میکنم، سپس نوار را صدا میزنم و
188
00:05:38,800 –> 00:05:39,759
x را چاپ
189
00:05:39,759 –> 00:05:41,840
میکنم، سپس فقط میخواهم foo را صدا کنم
190
00:05:41,840 –> 00:05:42,880
و x را
191
00:05:42,880 –> 00:05:45,680
بعد از تماس با foo چاپ میکنم، فقط میخواهم به شما نشان دهم
192
00:05:45,680 –> 00:05:46,800
که ما چه هستیم در واقع
193
00:05:46,800 –> 00:05:47,600
خروجی را در اینجا
194
00:05:47,600 –> 00:05:50,160
دریافت می کنیم و می بینیم که 3 مقدار مختلف 7 2
195
00:05:50,160 –> 00:05:50,880
و 0
196
00:05:50,880 –> 00:05:52,320
را دریافت می کنیم.
197
00:05:52,320 –> 00:05:54,160
198
00:05:54,160 –> 00:05:56,560
199
00:05:56,560 –> 00:05:57,280
200
00:05:57,280 –> 00:06:00,000
این x سپس در داخل
201
00:06:00,000 –> 00:06:01,360
اینجا میگویم x برابر با 2 است
202
00:06:01,360 –> 00:06:03,600
، تابع نوار را
203
00:06:03,600 –> 00:06:04,960
تعریف میکنم، تابع نواری را که چاپ میکنیم
204
00:06:04,960 –> 00:06:08,479
7 مینامیم، زیرا چاه 7 همان چیزی است که به آن میگویند
205
00:06:08,479 –> 00:06:09,919
چاه 7 اولین چیزی خواهد بود که چاپ
206
00:06:09,919 –> 00:06:11,039
میکنیم، زیرا ما آن تابع را اول صدا زدیم
207
00:06:11,039 –> 00:06:11,680
208
00:06:11,680 –> 00:06:14,479
. محلی به تابع نوار بنابراین ما
209
00:06:14,479 –> 00:06:15,680
7 را چاپ می
210
00:06:15,680 –> 00:06:18,400
کنیم. سپس x را بعد از فراخوانی نوار چاه
211
00:06:18,400 –> 00:06:19,440
x برابر 2 است
212
00:06:19,440 –> 00:06:22,160
زیرا این در تابع foo است
213
00:06:22,160 –> 00:06:24,800
x محلی به 2 است بنابراین ما 2 را چاپ می کنیم.
214
00:06:24,800 –> 00:06:27,120
سپس x را اینجا و دوباره i قبلا چاپ می کنیم.
215
00:06:27,120 –> 00:06:28,319
بحث کردم که این
216
00:06:28,319 –> 00:06:29,199
متغیر سراسری x است،
217
00:06:29,199 –> 00:06:30,479
بنابراین عجیب است زیرا
218
00:06:30,479 –> 00:06:32,080
برای توضیح باید همان کلمات را میلیون ها بار بگویم
219
00:06:32,080 –> 00:06:32,720
این،
220
00:06:32,720 –> 00:06:34,080
اما اکنون اجازه دهید این
221
00:06:34,080 –> 00:06:36,319
حذف گیج کننده تر از x برابر با 7 باشد
222
00:06:36,319 –> 00:06:37,840
و من فقط x را در داخل
223
00:06:37,840 –> 00:06:39,360
تابع نوار چاپ
224
00:06:39,360 –> 00:06:40,720
می کنم، حالا حدس بزنید که چه چیزی قرار
225
00:06:40,720 –> 00:06:42,400
است چاپ شود آیا این x را چاپ
226
00:06:42,400 –> 00:06:44,560
کنم یا هستم اینکه این x را چاپ کنیم
227
00:06:44,560 –> 00:06:45,919
سوال خوبی است یا آیا این به خطا می
228
00:06:45,919 –> 00:06:46,960
رود که چه اتفاقی می افتد،
229
00:06:46,960 –> 00:06:49,440
بنابراین بیایید این را اجرا کنیم و متوجه شویم که 2 2
230
00:06:49,440 –> 00:06:51,280
و سپس 0 می گیریم. بنابراین 2 را
231
00:06:51,280 –> 00:06:54,080
چاپ می کنیم و 2 را چاپ می کنیم و سپس 0 را چاپ می
232
00:06:54,080 –> 00:06:55,280
کنیم. یک مثال واقعا خوب
233
00:06:55,280 –> 00:06:57,520
برای نشان دادن اینکه چگونه ما واقعاً به دنبال
234
00:06:57,520 –> 00:06:59,360
متغیرهای سراسری یا متغیرهایی هستیم
235
00:06:59,360 –> 00:07:01,599
که در محدوده فعلی ما تعریف نشده اند،
236
00:07:01,599 –> 00:07:03,680
بنابراین وقتی می خواهم x را در اینجا در داخل نوار چاپ کنم
237
00:07:03,680 –> 00:07:05,520
اولین کاری که رایانه ما
238
00:07:05,520 –> 00:07:05,840
انجام می دهد این
239
00:07:05,840 –> 00:07:08,080
است که در محدوده این به نظر می رسد.
240
00:07:08,080 –> 00:07:09,919
تابع bar هر چیزی که در این تابع نوار تعریف شده
241
00:07:09,919 –> 00:07:10,479
باشد
242
00:07:10,479 –> 00:07:13,599
و می گوید آیا ما یک متغیر x داریم اگر
243
00:07:13,599 –> 00:07:14,160
244
00:07:14,160 –> 00:07:16,720
کاری که انجام می دهد این است که از آن مقدار برای x استفاده می
245
00:07:16,720 –> 00:07:17,840
کند زیرا محلی ترین نقطه ای
246
00:07:17,840 –> 00:07:19,840
است که ما این دستور را از آنجا فراخوانی کرده ایم
247
00:07:19,840 –> 00:07:22,080
اما اگر x را پیدا نکند. می
248
00:07:22,080 –> 00:07:23,680
گوید خوب اینجا x وجود ندارد،
249
00:07:23,680 –> 00:07:26,080
اما ممکن است یک outsi وجود داشته باشد بنابراین کاری
250
00:07:26,080 –> 00:07:28,319
که انجام می دهد این است که به محدوده ای می رود که
251
00:07:28,319 –> 00:07:29,919
حاوی آن است که تابع foo
252
00:07:29,919 –> 00:07:32,080
است زیرا نوار در تابع foo تعریف شده
253
00:07:32,080 –> 00:07:33,199
است
254
00:07:33,199 –> 00:07:35,440
و سپس کاری که انجام می دهیم این است که هر x
255
00:07:35,440 –> 00:07:37,120
تعریف شده در آن محدوده را جستجو می
256
00:07:37,120 –> 00:07:39,440
کنیم و یکی را پیدا می کنیم که x است. برابر با 2
257
00:07:39,440 –> 00:07:42,639
و بنابراین ما آن مقدار x را چاپ می کنیم یا از آن استفاده
258
00:07:42,639 –> 00:07:45,599
می کنیم، اما اکنون اگر x را از
259
00:07:45,599 –> 00:07:46,639
اینجا حذف کنم
260
00:07:46,639 –> 00:07:49,440
و این کار را انجام دهم، بیایید آن را اجرا کنیم، 0 0 0 دریافت می کنیم.
261
00:07:49,440 –> 00:07:51,360
بنابراین آنچه در این عبارت چاپ اتفاق می افتد این
262
00:07:51,360 –> 00:07:53,120
است که ما در این محدوده نگاه می کنیم ما
263
00:07:53,120 –> 00:07:55,280
هیچ x را پیدا نمی کنیم بنابراین در محدوده جستجو می
264
00:07:55,280 –> 00:07:56,639
کنیم که این همان find in است
265
00:07:56,639 –> 00:07:59,039
و x را پیدا می کنیم پس از x استفاده می کنیم
266
00:07:59,039 –> 00:08:00,319
که مقدار 0 است.
267
00:08:00,319 –> 00:08:01,919
همان چیزی که در داخل تابع foo
268
00:08:01,919 –> 00:08:03,599
در تابع foo نگاه می کنیم. هر
269
00:08:03,599 –> 00:08:06,160
x را که در فایل جهانی یا فایل جستجو میکنیم،
270
00:08:06,160 –> 00:08:07,280
حدس میزنم خط اصلی را
271
00:08:07,280 –> 00:08:09,520
پیدا میکنیم و x برابر با 0 است و ما از آن
272
00:08:09,520 –> 00:08:10,400
به عنوان مقدار استفاده میکنیم،
273
00:08:10,400 –> 00:08:12,080
بنابراین امیدواریم که دامنه
274
00:08:12,080 –> 00:08:14,319
و نحوه ارجاع یا دسترسی ما به
275
00:08:14,319 –> 00:08:15,360
متغیرها را برای شما توضیح دهد
276
00:08:15,360 –> 00:08:17,520
حالا اجازه دهید در مورد آن صحبت کنیم. کلمه کلیدی جهانی است،
277
00:08:17,520 –> 00:08:18,960
بنابراین من می خواهم به مثال قبلی برگردم که
278
00:08:18,960 –> 00:08:20,319
279
00:08:20,319 –> 00:08:22,000
وضعیت چاپ را حفظ می کنیم
280
00:08:22,000 –> 00:08:23,360
ما می گوییم x برابر 2
281
00:08:23,360 –> 00:08:25,680
و سپس x برابر با 7. حالا کاری که من می
282
00:08:25,680 –> 00:08:27,280
خواهم انجام دهم در
283
00:08:27,280 –> 00:08:29,759
داخل تابع foo است، می خواهم بگویم
284
00:08:29,759 –> 00:08:31,199
globalx
285
00:08:31,199 –> 00:08:32,559
اکنون زمانی که می خواهید یک متغیر جهانی تعریف کنید این کاری است که شما انجام می دهید.
286
00:08:32,559 –> 00:08:34,479
287
00:08:34,479 –> 00:08:35,919
شما global را در بالای
288
00:08:35,919 –> 00:08:37,519
تابع قرار می دهید و سپس می توانید چندین
289
00:08:37,519 –> 00:08:39,360
متغیر را در اینجا قرار دهید مانند من می توانم x کاما y را
290
00:08:39,360 –> 00:08:40,479
اگر بخواهم انجام دهم
291
00:08:40,479 –> 00:08:43,279
و این تقریباً به تابع ما می گوید
292
00:08:43,279 –> 00:08:44,399
که کاری که باید انجام دهیم این
293
00:08:44,399 –> 00:08:46,959
است که هر متغیری به نام x را به عنوان یک متغیر
294
00:08:46,959 –> 00:08:47,680
جهانی در نظر بگیریم.
295
00:08:47,680 –> 00:08:50,160
حالا به یاد داشته باشید که متغیرهای سراسری
296
00:08:50,160 –> 00:08:51,839
هر چیزی هستند که در خط اصلی فایل تعریف
297
00:08:51,839 –> 00:08:52,240
شده
298
00:08:52,240 –> 00:08:54,240
باشد، بنابراین معنی آن این است که
299
00:08:54,240 –> 00:08:56,160
ما x را در اینجا مانند
300
00:08:56,160 –> 00:08:59,279
x در اینجا در نظر می گیریم، بنابراین وقتی می گویم x برابر 2
301
00:08:59,279 –> 00:09:01,279
است، می دانید چه کاری انجام می دهم
302
00:09:01,279 –> 00:09:02,240
. من فقط تابع نوار را حذف می کنم
303
00:09:02,2