Python භාෂාවෙහි වස්තු-අධිෂ්ඨානය (OOP) ඉගෙන ගන්නා සැමට, Encapsulation සහ Abstraction යන දෙකම අත්යවශ්ය පදනම් වේ. මේවා කේතයේ අභ්යන්තර තොරතුරු රහස්ය කරමින්, භාවිතා කරන්නාට පහසු, පිරිසිදු අතුරුමුහුණත් ලබා දීමට උපකාරී වේ.
Encapsulation කියන්නේ දත්ත හා ඒවාට ක්රියා කරන ක්රම (methods) එකට ගැලපීමයි. මෙයින් පසුබැසී ඇති තොරතුරු (උදා: ගිණුමේ ශේෂය) සෘජුවම පිවිසීමට ඉඩ නොදෙයි; ඒ වෙනුවට පරීක්ෂාකාරී ක්රම හරහා පමණක් වෙනස් කිරීමට හෝ කියවීමට හැකියාව ලැබේ. Abstraction එනම් සංකීර්ණ ක්රියාකාරකම් සරල අතුරුමුහුණතක් මඟින් වැසීමයි; භාවිතා කරන්නාට පසුබැසී ඇති ලොජික් ගැන නොදැන, අවශ්ය ප්රතිඵල පමණක් ලබා ගත හැක.
Python හි Java හෝ C++ වැනි තද “public / private” යන ප්රකාශන නැත. ඒ වෙනුවට නාම පදනම් නාමකරණ (naming conventions) සහ name‑mangling භාවිතා කරයි.
- Public –
self.nameලෙස ලියනවා; පන්තියෙන් පිටතද ඇතුළතද සෑම තැනකම ප්රවේශය ඇත. - Protected –
self._balanceලෙස අගෙට එක underscore; උපපන්තියන්ට පමණක් භාවිතා කරන බව සලකුණු කරයි. - Private –
self.__pinලෙස double underscore; Python එය_ClassName__pinලෙස පරිවර්තනය කර, බාහිරයෙන් සරලව ප්රවේශ වීම වැලැක්වේ.
උදාහරණයක් ලෙස, SecureVault පන්තියක් සකස් කරලා, මූලික තොරතුරු (owner, balance, pin) වර්ගීකරණය කරගත හැක. Public ගුණය සෘජුවම කියවිය හැකි අතර, Protected ගුණය convention පරිදි භාවිතා කළ යුතුය. Private ගුණය සෘජුවම ප්රවේශ වීමට උත්සාහ කළහොත් AttributeError නගයි; නමුත් name‑mangling භාවිතා කර _SecureVault__pin ලෙස ප්රවේශ විය හැක.
Getter සහ Setter ක්රියාකාරකම් සඳහා Python හි @property සජීවීකරණය ඉතා ප්රයෝජනවත්. මෙයින් ක්ෂේමවත් ගුණයක් ලෙස balance කියවීම සහ balance = value ලෙස සකස් කිරීම සරලයි, ඒත් අභ්යන්තරව පරීක්ෂා (value > 0) සිදු කරයි. වැරදි අගයක් ඇතුළත් කළහොත් ValueError නගයි, එවිට කේතයේ දෝෂ හඳුනාගැනීමට පහසු වේ.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ අධ්යයන ආයතන හා තාක්ෂණ ආයතන Python පාඨමාලා ගෙන යන විට, Encapsulation සහ Abstraction පිළිබඳ පැහැදිළි අවබෝධයක් තිබීම ඉතා වැදගත්. එමඟින්:
- ඉගෙනුම්කරුවන්ට ආරක්ෂිත API නිර්මාණය කර, දත්ත රහස්යතාවය රඳවා ගැනීමට හැකි වේ.
- ව්යාපාරික යෙදුම්වල දෝෂ අවම කර, නවීන සේවා (cloud, AI) සමඟ සම්බන්ධතාවය පහසු කරයි.
- ස්ථානික සංවර්ධකයින්ට කේතය පවත්වාගෙන යාමට, පරීක්ෂාකාරී පරීක්ෂණ (unit testing) සහ නවීන IDEs සමඟ වැඩ කිරීම සරල කරයි.
අදාල තාක්ෂණික දැනුම ලබා ගන්නා සිසුන්, ගෝලීය සමාජයේ Python ප්රජාව සමඟ සම්බන්ධ වීමට, සහ ශ්රී ලංකාවේ තාක්ෂණික ආර්ථිකය දියුණු කිරීමට මූලික පදනමක් සපයයි.
ඔබත් Python කේතය ආරක්ෂා කර, පිරිසිදු අතුරුමුහුණතක් නිර්මාණය කිරීමට අදම මේ මූලික කරුණු අධ්යයනය කරන්න.