Skip to playerSkip to main contentSkip to footer
  • 5/23/2025
In Python, global and nonlocal keywords manage variable scope within functions. They dictate whether a variable inside a function refers to a variable outside of it.
Global Keyword
The global keyword is used to modify a variable defined outside the current function, in the global scope. Without global, any assignment to a variable within a function is assumed to be local to that function.
Nonlocal Keyword
The nonlocal keyword is used in nested functions to modify a variable in the nearest enclosing scope that is not global. It allows inner functions to modify variables in the outer (non-global) function's scope

Category

📚
Learning
Transcript
00:00Welcome back. This lecture can be done with two important keywords.
00:03The first is global and the second is non-local.
00:07This keyword is global and non-local.
00:10I will explain this to you.
00:12We have a last time example.
00:14I explained that this is local scope.
00:17This is parent scope.
00:19I will call it non-local.
00:21This is local scope.
00:23This is non-local scope.
00:25This is global scope.
00:26If you have a phone in your home,
00:31then you will see your parents.
00:34Then you will see the road.
00:36When I run the phone in my home,
00:38if you have a phone in my home,
00:41if you have a phone in your home,
00:43then you will see that
00:46you will see that my iPhone 10 is not parents home,
00:49which is my parents home,
00:51which is non-local.
00:53If I remove this non-local,
00:55then I will remove this.
00:56If I remove this,
00:59then you will see that
01:02.
01:06Here I go.
01:07I will see that
01:10it will also not local.
01:12Then I will see that
01:14the third rule is not.
01:15This rule is not termed.
01:16I don't want to look
01:45for my phone on the road in global scope
01:48میں چاہتا ہوں
01:50کہ یہ جو variable میرا یہاں پہ پڑا ہوا ہے
01:52یہ میرے پیرنٹس کے گھر سے
01:54ایکسس کیا جائے
01:57ٹھیک ہے
01:58non-local scope سے ایکسس کیا جائے
02:01یہ variable
02:01تو وہ کیسے میں اس کو declare کروں گا
02:04کیسے بتاؤں گا
02:05کہ اگر فون تمہیں یہاں پہ نہیں مل رہا
02:08تو تم اس طرح کرو
02:10کہ یہ لازمی تم نے یہی فائل
02:12یہی variable ہی اٹھانا ہے
02:14تو اس کے لئے ایک ورڈ use ہوتا ہے
02:16non-local
02:18ٹھیک ہے
02:18تو non-local کو آپ
02:20ایک variable بتاتے ہیں
02:21کہ یہ جو فون ہے نا
02:23یہ جو فون ہے نا
02:26یہ non-local ہے
02:27تو آپ نے
02:27اٹھانا ہی پیرنٹس کے ہاؤس سے ہے
02:30یہ fix کر دیا ہے میں نے
02:31صحیح ہے
02:32تو اب میں اگر اس کو execute کرتا ہوں
02:34تو یہ میرے پیرنٹس ہاؤس سے اٹھا رہا ہے
02:36اب آپ نے غور کرنا ہے
02:38میں اس کو remove کر دیتا ہوں
02:40یہ دیکھئے
02:40اب یہ my home سے اٹھا رہا ہے
02:43اگر میں اس کو comment out کرتا ہوں
02:44ٹھیک ہے
02:45تو اب یہ میرے پیرنٹس سے اٹھا رہا ہے
02:48excellent
02:48اب آپ کہیں sir
02:50اگر آپ یہ نام بھی ڈالتے
02:52تب ہی تو اس نے پیرنٹس سے ہی اٹھانا تھا نا
02:53yes
02:55this is correct
02:56however
02:57what if parents میں یہ exist نہیں کرتا
02:59یا parent کے اندر
03:00آپ نے ایک اور variable ہی ایسا define کیا ہوا ہے
03:02جو کہ آپ نے اپنے پیرنٹس کے گھر سے ہی ریکھنا
03:04آپ کو پتا ہے
03:04یار
03:04road پہ پڑھا ہی نہیں ہوا وہ variable
03:06road پہ میرا phone گرہ ہی نہیں ہے
03:07میرا phone میرے پیرنٹس کے گھر میں
03:09تو پھر آپ
03:11کیوں نہ fix کر دیں اس position کو
03:13ایک چیز
03:14یا دوسرا scenario
03:15what if آپ کا road
03:16آپ کا phone جو ہے
03:17وہ گرہ ہی road کے اوپر ہے
03:19آپ کا phone جو گم ہوا
03:21وہ ہوا ہی road کے اوپر گم ہوا
03:23تو پھر اس case میں تو
03:25آپ جب non-logن کریں گے
03:26وہ تو آپ ہمیشہ غلط جگہ پہ ڈونڈ رہے ہیں
03:28اپنے phone کو
03:28تو آپ کا تو phone کبھی بھی آپ کو نہیں ملے گا
03:30تو اس case میں کیا کر سکتے ہیں
03:32کیا آپ یہاں پہ declare کر سکتے ہیں
03:35یہ phone اگر تجھے
03:36local میں نہیں ملتا
03:37تو میرے پیرنٹس کے گھر دیکھنے کی ضرورت نہیں آئے
03:41تو انہیں road پہ دیکھنا ہے
03:42کیونکہ میں
03:43اپنے پیرنٹس کے گھر گیا ہے نہیں
03:44میرا phone گرا تھا
03:45road کے اوپر
03:46تو آپ نے road کے اوپر دیکھنا ہے
03:48تو اس کے لئے مجھے بتانا پڑے گا
03:49کہ یہ جو phone variable ہے
03:51یہ basically global variable ہے
03:53تو یہاں پہ non-local کی بجائے
03:55آپ اگر global keyword replace کر دیں گے
03:57تو یہ ہمیشہ global scope میں دیکھے گا
03:59چاہے آپ کا phone
04:01variable جو ہے
04:02وہ exist کرتا ہو
04:03آپ کے non-local scope کے اندر
04:04یا نہ کرتا ہو
04:05it doesn't matter
04:06now
04:06کیونکہ اب آپ نے declare ہی کر دیا
04:08کہ یہ global میں ہی دیکھنا ہے
04:09تو یہ fix ہو گیا
04:10آپ global میں ہی دیکھے گا
04:11میں اس کو execute کرتا ہوں
04:13اب phone on the global scope
04:14تو اب یہ آپ کو global scope میں
04:16variable return کر رہا ہے
04:18make sense
04:19سمجھا رہی ہے نا بات کو
04:21آپ اس کو یوں سمجھئے
04:23کہ natural آپ کی tendency کیا ہوگی
04:26آپ کو phone گم ہو گیا
04:27آپ گھر میں بیٹھے ہوئے ہیں
04:28آپ گھر میں بیٹھے ہیں
04:29میں phone آپ کا گم ہو گیا
04:30تو آپ سب سے پہلے
04:31اپنے گھر میں دیکھیں گے
04:32اس کو کہتے ہیں local scope
04:33اب آپ کے گھر میں نہیں ملا
04:35تو آپ اپنے parent کے گھر میں دیکھیں گے
04:36جیسے کہ
04:37یہاں پہ ہم نے function define کیا
04:38آپ کے گھر کے باہر
04:39آپ کا parent کا گھر ہے
04:40تو parent کے گھر میں نہیں ملا
04:42تو پھر آپ road پہ جا کے دیکھیں گے
04:44ٹھیک ہے
04:44یہ تین function ہے
04:45python اسی طریقے سے
04:46variable کو access کرتا ہے
04:49اگر inner function کے اندر
04:50variable نہیں پڑا ہوا
04:51تو وہ outer function کے اندر دیکھتا ہے
04:53outer میں نہیں پڑا
04:54تو وہ main file کے اندر دیکھتا ہے
04:56ٹھیک ہے
04:56اب اس دیکھنے کی preference کو
04:59ہم change کر سکتے ہیں
05:00ہے non local
05:01دوسرا ہے global
05:03اب اگر آپ چاہتے ہیں
05:04کہ وہ specifically non local میں دیکھیں
05:06parent کے house دیکھیں
05:07تو آپ یہاں پہ non local لکھتے ہیں
05:08آپ کہتے ہیں
05:08نہیں specifically global سے access کرے
05:10تو آپ یہاں پہ global لکھ دیتے ہیں
05:11it will look into the global scope
05:12آپ دیکھئے
05:14میں اس کو کہتا ہوں
05:16یہ دیکھئے run کرتے ہیں
05:18جب یہ active ہے
05:20تو یہ اپنے home میں دیکھ رہا ہے
05:22phone کو
05:22ٹھیک ہے
05:23search کر رہا ہے
05:24اور would result return کر رہا ہے
05:25جو phone میں دیکھ رہا ہے
05:26phone کو
05:26ٹھیک ہے
05:27search کر رہا ہے
05:28اور would result return کر رہا ہے
05:29جو phone والا ہے
05:30اگر phone نہیں exist کرتا
05:32تو یہ basically parent کے گھر جاتا ہی نہیں ہے
05:34کیونکہ آپ نے کہا
05:35یار اگر یہاں پہ نہیں کرتا
05:36تو آپ نے پھر global والا یہ return کرنا ہے
05:38تو یہ global والا return کر رہا ہے

Recommended