பைத்தான் - மாறிகளின் வரையெல்லை | 12th Computer Science : Chapter 7 : Core Python : Python Functions
மாறிகளின் வரையெல்லை
இது நிரலின் அணுகக்கூடிய பகுதியைக் குறிப்பதாகும். அதாவது, எந்த பகுதியில் மாறியைப் பயன்படுத்துகிறோமோ அதைக் குறிக்கிறது. வரையெல்லையானது நடப்பு மாறித் தொகுதிகள் மற்றும் அதன் மதிப்புகளைக் கொண்டிருக்கும். இரண்டு வகையான வரையெல்லைகளைப் பார்க்கலாம். உள்ளமை வரையெல்லை மற்றும் குளோபல் வரையெல்லை.
ஒரு செயற்கூறுவின் உடற்பகுதியின் உள்ளே அல்லது உள்ளமை வரையெல்லையில்
மாறியை அறிவிப்பது உள்ளமை மாறி எனப்படும்.
உள்ளமை மாறியின் விதிமுறைகள்
• உள்ளமை மாறியின் வரையெல்ல அதுவரையறுக்கப்பட்டுள்ள தொகுதிக்குள்
மட்டுமே பயன்படுத்த முடியும்.
• செயற்கூறினுள் மாறி உருவாக்கப்படும் போது அது உள்ளமைவாக அமையும்.
• செயற்கூறு இயக்கப்படும் போது மட்டுமே உள்ளமை மாறிகள் உருவாக்கப்படும்.
எடுத்துக்காட்டு: உள்ளமை மாறியை உருவாக்குதல்
def loc():
y=0 # local scope
print(y)
loc( )
வெளியீடு
0
எடுத்துக்காட்டு: வரையெல்லைக்கு வெளியே உள்ளமை மாறிகளை அணுகுதல்
def loc():
y = "local"
loc()
print(y)
மேலே உள்ள குறிமுறையை இயக்கும் போது வெளியீட்டில் பின்வரும்
பிழை தோன்றும்.
குளோபல் வரையெல்லையில் உள்ளமை மாறியான ‘y' யை அணுக முற்பட்டதால்
மேற்கண்ட பிழை தோன்றுகிறது.
NameError: name 'y' is not defined
குளோபல் வரையெல்லை உடைய மாறியை நிரலில் எங்கு வேண்டுமானாலும்
அணுக முடியும். எந்த ஒரு செயற்கூறு வரையெல்லைக்கு வெளியேயும் மாறியை வரையறுத்து உருவாக்க
முடியும்.
குளோபல் வரையெல்லை சிறப்புச் சொல்லின் விதிமுறைகள்
• செயற்கூறுக்கு வெளியே மாறியை அறிவிக்கும் போது அது தானமைவாக
குளோபல் ஆகும். ‘global' என்ற சிறப்புச் சொல்லை பயன்படுத்த வேண்டியதில்லை.
• செயற்கூறினுள் முழுதளாவிய மாறியை படிக்க மற்றும் எழுத
'global' சிறப்புச்சொல் பயன்படுத்த வேண்டும்.
• செயற்கூறுவிற்கு வெளியே ‘global' என்ற சிறப்புச் சொல் எந்த
விளைவையும் ஏற்படுத்தாது.
'Global' சிறப்புச் சொல்லின் பயன்பாடு
எடுத்துக்காட்டு: செயற்கூறுவின் உள்ளிருந்து குளோபல் மாறியை அணுகுதல்
c= 1 # global variable
def add():)
print(c)
add()
வெளியீடு
1
எடுத்துக்காட்டு: செயற்கூறுவின் உள்ளிருந்து முழுதளாவிய மாறியை மாற்றுதல்
மேற்கண்ட நிரலை இயக்கும் போது வெளியீடு பின்வரும் பிழையை காண்பிக்கும்.
C = 1 # global variable
def add():)
c = c + 2 # increment c by 2
print(c)
add()
வெளியீடு
Unbound Local Error: local variable 'c'
referenced before assignment
குறிப்பு
‘global'
என்ற சிறப்பு சொல்லைப் பயன்படுத்தாமல் குளோபல் மாறியை செயற்கூறின் உள்ளே மாற்றம் செய்ய
முடியாது. ஆனால் அணுக மட்டுமே முடியும்.
எடுத்துக்காட்டு: செயற்கூறின் உள்ளிருந்து 'global' சிறப்புச் சொல்லைப்
பயன்படுத்தி குளோபல் மாறியை மாற்றுதல்
X = 0
# global variable
def add():
global x
x = x + 5
# increment by 2
print ("Inside add() function x value
is :'', x)
add()
print ("In main x value is :", x)
மேற்கண்ட நிரலை இயக்கும் போது பின்வரும் வெளியீடு தோன்றும்.
வெளியீடு
Inside add() function x value is : 5
In main x value is : 5
மேலே உள்ள நிரலில், x என்பது குளோபல் மாறி ஆகும். add() செயற்கூறினுள், ‘global' என்ற சிறப்புச் சொல் X மாறிக்கு பயன்படுத்தப்பட்டு அதனுடன் 5 என்ற மதிப்பு கூட்டப்படுகிறது. இப்பொழுது நாம் மாற்றம் செய்யப்பட்ட குளோபல் மாறி Xயை செயற்கூறின் வெளியே காணலாம். அதாவது, x ன் மதிப்பு 5 ஆகும்.
3. குளோபல் மற்றும் உள்ளமை மாறிகள்
இங்கு, நாம் ஒரே குறிமுறையில் குளோபல் மற்றும் உள்ளமை மாறிகளை
எவ்வாறு பயன்படுத்துவது என்பதைக் காணலாம்.
எடுத்துக்காட்டு: ஒரே குறிமுறையில் குளோபல் மற்றும் உள்ளமை மாறிகளின்
பயன்பாடு
x=8 # x is a global variable
def loc():
global x
y = "local"
x = x * 2
print(x)
print(y)
loc()
நிரலை இயக்கும் போது வெளியீடு பின்வருமாறு தோன்றும்
வெளியீடு
16
local
மேற்கண்ட நிரலில் X என்பது குளோபல் மாறியாகவும், y என்பது உள்ளமை
மாறியாகவும் loc() செயற்கூறில் அறிவிக்கப்பட்டுள்ளது. Loc() செயற்கூறினை அழைத்த பிறகு
, Xன் மதிப்பு 16 என மாறிவிடும். ஏனெனில் x=x*2 எனபயன்படுத்தி உள்ளோம். அதன்பிறகு,உள்ளமைமாறி)யின்மதிப்பு
அச்சிடப்பட்டுள்ளது.
எடுத்துக்காட்டு: ஒரே பெயரைக் கொண்ட குளோபல் மற்றும் உள்ளமை மாறிகள்
x = 5
def loc():
x = 10
print ("local x:'', x)
loc()
print ("global x:'', x)
வெளியீடு
local x: 10
global x: 5
மேற்கண்ட நிரலில், ஒரே பெயரைக் கொண்ட x மாறி குளோபல் மற்றும்
உள்ளமை மாறியாக பயன்படுத்தப்பட்டுள்ளது. இரண்டு வரையெல்லையிலும் மாறியை அறிவித்துள்ளதால்,
அச்சிடும் போது வெவ்வேறான விடைக் கிடைக்கிறது. அதாவது, loc() செயற்கூறின் உள்ளே உள்ள
x மாறி உள்ளமை வரையெல்லையாகவும் செயற்கூறின் வெளியே உள்ள X மாறி குளோபல் வரையெல்லையாகவும்
இருக்கும்.
வெளியீடு:- local
x: 10, is called local scope of variable.
வெளியீடு:- global
x: 5, is called global scope of variable.