பைத்தான் இனக்குழுக்கள் மற்றும் பொருள்கள் - Study Notes
பாடச் சுருக்கம்
யபத்தான் ஒரு சக்திவாய்ந்த பொருள் நோக்கு நிரலாக்க மொழியாகும். இப்பாடம் இனக்குழுக்கள், பொருள்கள், ஆக்கிகள் மற்றும் அழிப்பிகள் ஆகியவற்றின் அடிப்படைக் கொள்கைகளை விளக்குகிறது. யபத்்தானில் இனக்குழுக்கள் எவ்வாறு வரையறுக்கப்படுகின்றன மற்றும் அவற்றிலிருந்து பொருள்கள் (சான்றுருக்கள்) எவ்வாறு உருவாக்கப்படுகின்றன என்பதை இது விரிவாக விளக்குகிறது. மேலும், தரவுப் பாதுகாப்பு முறைகளான பொது மற்றும் தனிப்பட்ட உறுப்புகளின் செயல்பாடுகளையும் இது விவரிக்கிறது.
கற்றலின் நோக்கங்கள்
- பொருள் நோக்கு நிரலாக்கத்தின் (OOP) அடிப்படைக் கருத்துக்களைப் புரிந்துகொள்ளுதல்.
- யபத்்தானில் இனக்குழுக்கள் (Class) மற்றும் பொருள்கள் (Object) ஆகியவற்றை வரையறுக்கவும் உருவாக்கவும் கற்றல்.
- ஆக்கி (Constructor) மற்றும் அழிப்பி (Destructor) ஆகியவற்றின் செயல்பாடுகளை விளக்குதல்.
- இனக்குழுவிற்குள் சான்றுரு மாறிகள் மற்றும் வழிமுறைகளை எவ்வாறு கையாள்வது என்பதை அறிதல்.
- பொது (Public) மற்றும் தனிப்பட்ட (Private) தரவு உறுப்புகளுக்கு இடையிலான வேறுபாடுகளைக் கண்டறிதல்.
முக்கியக் கருத்துருக்கள் மற்றும் வரையறைகள்
- இனக்குழு (Class): இது ஒரு பொருளை உருவாக்குவதற்கான வார்ப்புரு (Template) ஆகும். இது class என்ற சிறப்புச் சொல்லைக் கொண்டு வரையறுக்கப்படுகிறது.
- பொருள் (Object / Instance): இது ஒரு இனக்குழுவின் குறிப்பிட்ட சான்றுரு ஆகும். இனக்குழுவின் அடிப்படையில் உருவாக்கப்படும் அனைத்து மாறிகளும் பொருள்களாகக் கருதப்படுகின்றன.
- சான்றுருவாக்கல் (Instantiation): ஒரு இனக்குழுவிலிருந்து புதிய பொருள்களை உருவாக்கும் செயல்முறைக்குச் சான்றுருவாக்கல் என்று பெயர்.
- வழிமுறை (Method): இனக்குழுவிற்குள் வரையறுக்கப்படும் செயற்கூறுகள் வழிமுறைகள் என்று அழைக்கப்படுகின்றன. இவற்றின் முதல் அளபுருவாக எப்போதும் self இருக்க வேண்டும்.
- ஆக்கி (Constructor): ஒரு இனக்குழுவின் சான்றுரு உருவாக்கப்படும்போது தானாகவே இயங்கும் சிறப்பு வழிமுறை ஆக்கி ஆகும். யபத்்தானில் __init__ என்ற பெயரில் இது வரையறுக்கப்படுகிறது.
- அழிப்பி (Destructor): ஒரு பொருளின் பயன்பாடு முடிந்து அது நினைவகத்திலிருந்து நீக்கப்படும்போது தானாகவே இயங்கும் சிறப்பு வழிமுறை அழிப்பி ஆகும். இது __del__ என்ற பெயரில் வரையறுக்கப்படுகிறது.
- தனிப்பட்ட உறுப்பு (Private Member): இரட்டை அடிக்கோடிட்ட குறியீட்டை (__) முன்னொட்டாகக் கொண்ட மாறிகள் மற்றும் வழிமுறைகள் தனிப்பட்ட உறுப்புகள் எனப்படும். இவற்றை இனக்குழுவிற்கு வெளியே இருந்து நேரடியாக அணுக முடியாது.
செயல்முறை வழிமுறைகள்
இனக்குழு வரையறை மற்றும் பொருள் உருவாக்கம்
ஒரு இனக்குழுவை உருவாக்க class சிறப்புச் சொல்லைப் பயன்படுத்தி, அதற்குள் மாறிகள் மற்றும் வழிமுறைகளை வரையறுக்க வேண்டும். பின், இனக்குழுவின் பெயரை அடைப்புக்குறியுடன் அழைத்து புதிய பொருளை உருவாக்கலாம். எடுத்துக்காட்டாக, S = Sample() என்பது Sample என்ற இனக்குழுவிற்கான புதிய பொருளை உருவாக்குகிறது.
வழிமுறைகளில் self அளபுருவை கையாளுதல்
இனக்குழுவிற்குள் வழிமுறையை வரையறுக்கும்போது அதன் முதல் அளபுருவாக self இருக்க வேண்டும். ஆனால் அந்த வழிமுறையை அழைக்கும்போது நாம் அதற்கு மதிப்பை அனுப்பத் தேவையில்லை. யபத்தான் தானாகவே இந்த மதிப்பை வழங்கும்.
ஆக்கி மற்றும் அழிப்பியைப் பயன்படுத்துதல்
__init__ மற்றும் __del__ வழிமுறைகளை வரையறுப்பதன் மூலம் பொருள் உருவாக்கப்படும்போதும் மற்றும் அழிக்கப்படும்போதும் தேவையான செயல்பாடுகளைத் தானியக்கமாக்கலாம்.
பொதுவான தேர்வுப் பிழைகள்
- self அளபுருவை மறப்பது: இனக்குழு வழிமுறைகளை வரையறுக்கும்போது அதன் முதல் அளபுருவாக self என்பதைக் குறிப்பிட மறப்பது பொதுவான பிழையாகும். இது நிரல் இயக்கப் பிழையை (Runtime Error) ஏற்படுத்தும்.
- தனிப்பட்ட உறுப்புகளை வெளியே இருந்து அணுகுதல்: இரட்டை அடிக்கோடிட்ட குறியீட்டுடன் (__) தொடங்கும் தனிப்பட்ட மாறிகளை இனக்குழுவிற்கு வெளியே இருந்து அணுக முயற்சிக்கும்போது AttributeError ஏற்படும்.
- பொருளை அழைக்க அடைப்புக்குறி இடாதது: இனக்குழுவின் பொருளை உருவாக்கும்போது (சான்றுருவாக்கும்போது) இனக்குழுவின் பெயருக்குப் பின் அடைப்புக்குறிகளை () இட வேண்டும். அவ்வாறு செய்யாவிட்டால் அது பொருளாக மாறாது.
- அடிக்கோடுகளைத் தவறாக எழுதுவது: ஆக்கி (__init__) மற்றும் அழிப்பி (__del__) ஆகியவற்றில் முன்னும் பின்னும் தலா இரண்டு அடிக்கோடுகள் (__) இடப்பட வேண்டும். ஒரு அடிக்கோடு மட்டும் இடுவது பிழையாகும்.
தேர்வு குறிப்புகள்
- ஆக்கி மற்றும் அழிப்பியின் பொதுவடிவம் மற்றும் அவற்றிற்கு இடையேயான வேறுபாடுகளைத் தெளிவாகப் படித்துக் கொள்ளவும்.
- பொது (Public) மற்றும் தனிப்பட்ட (Private) தரவு உறுப்புகளின் வேறுபாட்டை விளக்கும் நிரல் எடுத்துக்காட்டுகளைப் பயிற்சி செய்யவும்.
- self அளபுருவின் முக்கியத்துவம் மற்றும் அதன் பயன்பாட்டைப் பற்றி கேட்கப்படும் கேள்விகளுக்குத் தெளிவாக விடையளிக்கத் தயாராக இருக்கவும்.
- இனக்குழுவில் சான்றுருக்கள் எண்ணிக்கையைக் கணக்கிடும் நிரல்களை (Static Class Variables) நன்றாகப் புரிந்துகொண்டு எழுதப் பழகவும்.