ශ්‍රී ලංකාවේ නවතම තාක්ෂණික පුවත් 2026-07-21, Tuesday
💻 ක්‍රමලේඛනය · 🕒 කියවීමට විනාඩි 2 · 👁 1

Python හි Closures කියන්නේ කුමක්ද? වැඩි දැනුමක්, වැඩි කාර්ය සාධනය

Python හි Closures කියන්නේ කුමක්ද? වැඩි දැනුමක්, වැඩි කාර්ය සාධනය

Python ඉගෙන ගන්නා විට අපිට functions, nested functions, scope වගේ මූලික අදහස් දැනගන්න පුළුවන්. ඒත් closures ගැන ඇහුවාම බොහෝ දෙනා “ඇයි මෙවැනි එකක් අවශ්‍ය?” කියලා හිතනවා. මේ ලිපියෙන් closures කෙළින්ම කුමක්ද, ඒවා නැතිව මොනවා වෙයි, සහ Python තුළ ඒවා කෙළින්ම කොහොම ක්‍රියා කරනවද කියලා පැහැදිලි කරමු.

ඇත්තටම, ඔබ nested function එකක් ලියලා, එහි අභ්‍යන්තර function එකට outer function එකේ variable එකක් භාවිතා කිරීමට උත්සාහ කළාම, outer function එක අවසන් වුනාම ඒ variable එක අතුරුදන් වේ. එම අවස්ථාවේම closures අවශ්‍ය වේ. Closure යනු, inner function එකට outer scope එකේ variable එකක් “මතක තබා” ගත හැකි function එකක්.

උදාහරණයක් ලෙස, def outer(): x = 10 def inner(): print(x) return inner කියලා ලියනවා. outer() ක්‍රියාත්මක කිරීමෙන් inner function එක 반환 කරයි, එය func = outer() ලෙස සුරැකිවෙයි. func() කැඳවද්දී, inner function එක x වල අගය 10 ප්‍රින්ට් කරයි, outer function එක අවසන් වුනාමත් x අතුරුදන් නොවෙයි. Python එම variable එක inner function එකට සමඟම සුරකින්නා.

Closures නැතිව නම්, inner function එකට අවශ්‍ය variable එක නොමැති බැවින් NameError එකක් එනවා. ඒ නිසා decorators වැනි ප්‍රායෝගික උපකරණ නිර්මාණය කළ නොහැක. Decorator එකක් සෑදීමේදී wrapper function එක inner function එකට original function එක මතක තබා ගනී; එය closures මත පදනම් වෙලා ක්‍රියා කරයි.

Closures වල ප්‍රධාන වාසියන් කිහිපයක් ඇත:

  • State එක රඳවා තබා ගැනීම – function factory ලෙස භාවිතා කළ හැක.
  • Data hiding – global variable භාවිතා නොකර private data එක සුරකින්න.
  • Callback functions – asynchronous code හෝ event‑driven programming එකේ උපකාරී.
  • Decorators – Python කේතයේ අලංකාරය හා modularity වැඩි කරයි.

ශ්‍රී ලංකාවට ඇති වැදගත්කම

ශ්‍රී ලංකාවේ තරුණ developers, data scientists, හා startups සඳහා closures ඉගෙනීම අත්‍යවශ්‍යයි. ඒක නිසා:

  • කේතයේ සරලත්වය – closures භාවිතා කරලා වැඩි modular code ලියලා maintainability වැඩි කරගත හැක.
  • ලොකල් වෙළඳපලේ තරඟකාරිත්වය – decorators සහ higher‑order functions වැනි උසස් පදනම් තාක්ෂණයන්ට පහසුවෙන් පිවිසීමෙන්, ගෝලීය පැතිකඩේ තරඟකාරී විය හැක.
  • ඉගෙනුම් වේගය – closures මගින් functional programming concepts හොඳින් ගැඹුරු කරගැනීමට අවස්ථාව ලැබේ, එමඟින් AI, cloud, හා automation වැනි නව තාක්ෂණයන්ට පාරදැක්වීම වේගවත් වේ.

ඒ නිසා Python closures ගැන හොඳ අවබෝධයක් තිබීම, ශ්‍රී ලංකාවේ තාක්ෂණික කාර්ය මණ්ඩලයට ඉදිරි අරමුණු සැලසුම් කරගැනීමට මූලික පදනමක් වේ.

අවසානයට, closures කියන්නේ Python කේතයෙහි “මතක” වගේ, ඔබට අවශ්‍ය data එක function එකක් සමඟ රඳවා තබා, එය ඕනෑම වේලාවක භාවිතා කිරීමේ හැකියාව ලබා දෙන ප්‍රබල උපකරණයකි. ඔබත් මේ හැකියාව ඔබේ වැඩසටහන් වලට එක් කරලා, කේතයේ ගුණාත්මකභාවය වැඩි කරගන්න.

💡 Closures ගැන වැඩිදුර ඉගෙන ගැනීමට අපගේ ලිපිය කියවන්න!
මූලාශ්‍රය මෙම ලිපිය AI මගින් රචිත මුල් සාරාංශයකි. සම්පූර්ණ වාර්තාව කියවන්න:
Dev.to ↗
#Python #Closures #Programming #Decorators #Learn