Python භාෂාව භාවිතා කරන විට is සහ == මෙහෙයුම් දෙකම නිතර දකින්න ලැබේ. පළමුව බලන විට ඒවා සමාන වැනි පෙනුමක් දක්වන නමුත්, ඇත්තේ සම්පූර්ණයෙන් වෙනත් කාර්යයන් පුරවා ගැනීමයි.
== මෙහෙයුම වස්තු දෙකක අගය එකකදැයි පරීක්ෂා කරයි. එනම්, ලැයිස්තු, අංක, ස්ට්රින් වගේ ඕනෑම ඕබ්ජෙක්ට් එකක අන්තර්ගතය එකසේදැයි සොයයි. උදාහරණයක් ලෙස numbers_a = [1, 2, 3] සහ numbers_b = [1, 2, 3] යන ලැයිස්තු දෙකම == මඟින් සැසඳුවහොත් True ලැබේ, ඒවා වෙන්ව ඇති වස්තු වුවද අගය එකම නිසා.
දෙවන පාර්ශවයේ is මෙහෙයුම වස්තුවේ හැඳුනුම (identity) පරීක්ෂා කරයි. එය “මෙම නාමය එකම මතක ස්ථානයේ අඩංගු වස්තුවකට යොමු කර තිබේද?” යන්නයි කියන්නේ. numbers_a = [1, 2, 3] යන ලැයිස්තුවක් numbers_b = numbers_a ලෙස ලබා දුන්නාම, is මඟින් True ලැබේ, එම නාම දෙකම එකම වස්තුවේ යොමුවකි.
Python හි None වස්තුවත් එකම singleton වස්තුවක් වන බැවින්, result is None ලෙස පරීක්ෂා කිරීම result == None ට වඩා නිවැරදි ක්රමයක් වේ. මෙය “result නමට සබැඳි වස්තුව සැබවින්ම None වස්තුවද?” යන ප්රශ්නයට පිළිතුරු දෙයි.
ඇරඹුම්කරුන් අතර පොදු වැරදි වන්නේ is භාවිතා කර අංක හෝ ස්ට්රින් පරීක්ෂා කිරීමයි. Python කුඩා පූර්ණ සංඛ්යා (උදා: 0‑255) කේෂ් කරගෙන ඇති නිසා a = 10; b = 10; a is b යන විට True ලැබිය හැක, නමුත් එය අභ්යන්තර ක්රමයක් පමණක්; ලොකු සංඛ්යා (10000) සඳහා is විශ්වාස නොකර == භාවිතා කරන්න.
ස්ට්රින් සම්බන්ධයෙන්ද Python “interning” නමැති ක්රියාවලියක් භාවිතා කරයි. “python” වැනි කෙටි ස්ට්රින් දෙකම එකම මතක ස්ථානයේ රඳා තිබේ නම් is මඟින් True ලැබිය හැක, නමුත් මෙය වගකීමක් නොවන බැවින් අගය පරීක්ෂා කිරීමට == පමණක් භාවිතා කිරීම සුදුසුයි.
ශ්රී ලංකාවට ඇති වැදගත්කම
ශ්රී ලංකාවේ අධ්යාපන පද්ධතියේ Python පාඨමාලා වර්ධනය වෙමින් පවතින අතර, is හා == අතර වෙනස අවබෝධ කර ගැනීම නවකෝඩර්ලාට බග් හෝ අසාමාන්ය හැසිරීම් වැළැක්වීමට උපකාරී වේ. ව්යාපාරික API සංවර්ධනය, දත්ත විශ්ලේෂණ, AI/ML ව්යාපෘති වැනි ක්ෂේත්රවල නිවැරදි සමානකරණය නොකළහොත් ලොජික් දෝෂ, දත්ත ගැටලු ඇති විය හැක. එම නිසා, ශ්රී ලංකාවේ තාක්ෂණික සමාජය සඳහා මෙම මූලික තත්ත්වය පැහැදිලි කිරීම, වැඩි නිෂ්පාදනශීලීත්වයක් සහ තත්ත්වවත් කේත ලේඛන රීති ගොඩනැගීමට දායක වේ.
අවසන් වශයෙන්, Python හි is සහ == භාවිතය ඔබේ කේතයේ නිරවද්යතාවය තීරණය කරන මූලික කරුණක් වන අතර, ඒවා අතර වෙනස හොඳින් අවබෝධ කර ගැනීම ඔබේ වැඩපිළිවෙළේ ගැටලු අඩු කරයි.