Python භාෂාවේ කේත ලියනවට ගැලපෙන අතිශය ප්රබල මෙවලමක් නම් ජනරේටර් (generator) ය. නමුත් ඔබට මේ ජනරේටර්වල ශක්තිය වැඩිදියුණු කර ගැනීමට, lazy evaluation කියන තාක්ෂණය භාවිතා කළ හැකිය. මෙයින් කේතය පරිසරය අඩු මතකයක් වැය කර, වැඩි වේගයෙන් ක්රියාත්මක වේ.
Lazy evaluation යනු කුමක්ද? මෙය ක්රමලේඛනයේ අභ්යන්තර තත්ත්වයකි, එහිදී ප්රකාශයක් අවශ්ය වන තුරු එය ගණනය නොකරයි. ඉතින්, අතුරු ප්රතිඵල නිර්මාණය නොකළ නිසා මතක භාවිතය අඩුවේ, අඩු ගණනයක් නිසා කාර්යක්ෂමතාව වැඩිවේ.
ජනරේටර් සහ lazy evaluation – ජනරේටර් තමන්ට අවශ්ය විටම අගයක් ලබා දෙන iterator එකක්. එමඟින් ලැයිස්තුවක් හෝ වෙනත් දත්ත ව්යුහයක් මුලින්ම පූර්ණයෙන්ම නිර්මාණය නොකර, on‑demand ලෙස අග ලබා දේ. උදාහරණයක් ලෙස, පහත කේතය තුල infinite_sequence ජනරේටර් එකක් නිර්මාණය කර ඇත; එය නියමිත අගය ඉල්ලූ විට පමණක් අලුත් අගයක් ලබා දෙයි.
def infinite_sequence(n):
i = 0
while True:
yield i
i += n
මෙම ආකාරයෙන්, ලොකු ලැයිස්තුවක් හදලා තබා ගැනීමට අවශ්ය නොවී, සෑම වරක්ම අලුත් අගයක් ලැබේ.
ඉදිරි තාක්ෂණික උපකරණ
- Cache කිරීම – ගණනය කිරීමේ පිරිවැය වැඩි වීමේදී ප්රතිඵල සුරකින්න. උදා:
cached_generatorඩෙකෝරේටරය. - Memoization – මධ්යම ප්රතිඵල සුරකිමින් අනිත් පාරිභෝගික ගණනය අඩු කරයි. උදා:
memoizeඩෙකෝරේටරය.
මෙම ක්රමයන් සමඟ, Fibonacci, factorial වැනි ගැඹුරු ගණනයන් ඉතා කාර්යක්ෂමව සිදු කළ හැක.
ශ්රී ලංකාවට ඇති වැදගත්කම
ලෝකයේ තාක්ෂණික දක්ෂතා ඉහළ යන සමයේ, Python ජනරේටර් සහ lazy evaluation භාවිතය ශ්රී ලංකාවේ ඉගෙනුම්, ව්යාපාරික, සංවර්ධන ක්ෂේත්රවලට විශාල වාසියක් ගෙන එයි.
- විශ්වවිද්යාල සිසුන්ට දත්ත විශ්ලේෂණ, AI පුහුණු මොඩල නිර්මාණය සඳහා මතක භාරය අඩු කරමින් විශාල දත්ත සමූහයක් සකස් කළ හැක.
- ස්ථානීය startups සඳහා API හෝ streaming data පාලනයේ latency අඩු කර, පාරිභෝගික අත්දැකීම වඩාත් හොඳින් ලබා දිය හැක.
- ආයතනික IT පදනම්වලදී server cost අඩු කර, cloud resource utilization වැඩි කර, වියදම් සුරකින්නට උපකාරී වේ.
ඉතිං, Python කේත ලියන අය, දත්ත විද්යාඥයෝ, සහ ව්යාපාරික IT ප්රවීණයන්ට මේ තාක්ෂණය අත්කර ගැනීම අත්යවශ්යය.
අවසානයට, lazy evaluation සහ ජනරේටර් එකතුව ඔබේ කේතය කාර්යක්ෂම, පරිසර හිතකාමී, හා සාර්ථක කරයි. මේ මඟින් ඔබේ වැඩ ප්රවේශය අලුත් මට්ටමකට ගෙන යාමට අවස්ථාව ලැබේ.