பைத்தானில் ஆக்கிகள் மற்றும் அழிப்பிகள்
ஓர் இனக்குழுவின் சான்றுரு பயன்பாட்டிற்கு வரும்பொழுது ஆக்கி
என்னும் சிறப்புச் செயற்கூறு தானாகவே இயக்கப்படுகிறது. பைத்தானில், "init” என்னும்
சிறப்பு செயற்கூறு ஆக்கியாக செயல்படுகிறது. இது இரட்டை அடிக்கீறில் (Under Score) தொடங்கி
இரட்டை அடிக்கீறலுடன் முடிய வேண்டும்.
இந்த செயற்கூறு சாதாரண செயற்கூறுவைப் போல செயல்படும். ஆனால்
பொருள் உருவாக்கப்பட்டவுடன் தானாகவே இயக்கப்படும். இந்த ஆக்கி செயற்கூறை அளபுருக்களுடனோ
அல்லது இல்லாமலோ வரையறுக்கலாம்.
__init_வழிமுறையின் (ஆக்கி) பொதுவடிவம்
def_init_(self, [args ........]):
<statements>
எடுத்துக்காட்டு 10.4: ஆக்கியை விளக்கும் நிரல்
class Sample:
def __init__(self, num):
print("Constructor of class
Sample...")
self.num=num
print("The value is:'', num)
S=Sample(10)
மேலே உள்ள இனக்குழு “Sample”,
“num” என்னும் ஒரே ஒரு அளபுருவுடன் கூடிய ஆக்கியைக் கொண்டுள்ளது. ஆக்கி இயக்கப்படும்
போது முதல் “print” கூற்று, "Constructor of class Sample....” என்பதை அச்சிடும்.
பிறகு, ஆக்கிக்கு அனுப்பப்படும் மதிப்பு self.num ல் இருத்தப்படுகிறது. இறுதியாக, கொடுக்கப்பட்ட
சரத்துடன் அனுப்பட்ட மதிப்பையும் அச்சிடுகிறது. S என்ற பொருள் 10 என்ற மெய்யான அளபுருவுடன்
உருவாக்கப்படும் போது மேலே உள்ள ஆக்கி தானாகவே இயக்கப்படும். பின்வரும் வெளியீடு கிடைக்கிறது.
Constructor
of class Sample...
The
value is : 10
ஆக்கியின் உள்ளே வரையறுக்கப்படும் இனக்குழு மாறியானது, இனக்குழுவில்
உருவாக்கப்படும் பொருள்களின் எண்ணிக்கையைக் கொண்டிருக்கும்:
எடுத்துக்காட்டு 10.5: உருவாக்கப்பட்ட பொருள்களின் எண்ணிக்கையை கொண்டிருக்கும் இனக்குழு மாறியை விளக்கும் நிரல்
class Sample:
num=0
def __init__(self, var):
Sample.num+=1
self.var=var
print("The object value is = '',
var)
print("The count of object
created = '', Sample.num)
S1=Sample(15)
S2=Sample(35)
S3=Sample(45)
மேலே உள்ள நிரலில், num என்னும் இனக்குழு மாறியானது Sample என்னும்
இனக்குழுவின் மூன்று பொருள்களுடன் பகிரப்படுகிறது. இதில் 0 என்ற தொடக்க மதிப்பு இருத்தப்பட்டு,
ஒவ்வொரு முறையும் பொருள் உருவாக்கப்படும் போது num ன் மதிப்பு 1 அதிகரிக்கப்படுகிறது.
அனைத்துப் பொருள்களும் மாறியை பகிர்வதால் ஒரு பொருளில் num மாறியில் செய்யப்படும் மாற்றமானது
மற்ற பிற பொருள்களில் பிரதிபலிப்பதால். பின்வரும் வெளியீடு கிடைக்கும்.
வெளியீடு
The object value is = 15
The count of object created = 1
The object value is = 35
The count of object created = 2
The object value is = 45
The count of object created = 3
குறிப்பு: இனக்குழு
மாறியானது C++ல் உள்ள Static வகையை ஒத்ததாகும்.
இனக்குழுவில் உருவாக்கப்பட்ட பொருளின் பயன்பாடு முடிவுக்கு வரும்
போது அழிப்பி என்னும் சிறப்பு செயற்கூறு தானாகவே இயக்கப்படும். இது ஆக்கிக்கு முரணானது.
பைத்தானில், _del_( ) செயற்கூறு அழிப்பியாகப் பயன்படுத்தப்படுகிறது.
எடுத்துக்காட்டு 10.6: _del_() வழிமுறையை விளக்கும் நிரல்
class Sample:
num=0
def __init__(self, var):
Sample.num+=1
self.var=var
print("The object value is = "',
var)
print("The value of class variable
is="', Sample.num)
def __del__(self):
Sample.num-=1
print("Object with value %d is exit
from the scope"%self.var)
S1=Sample(15)
S2=Sample(35)
S3=Sample(45)