Python හි විෂය පථයන් සමඟ වැඩ කිරීමේ සූක්ෂම කරුණු
ප්රාදේශීය සහ ගෝලීය විචල්යයන් සමඟ වැඩ කිරීමේ වැදගත් සූක්ෂම කරුණු සලකා බලමු.
අපට ගෝලීය විචල්යයක් num ඇතැයි සිතමු.
ගෝලීය num කොන්සෝලයට ප්රතිදානය කරන func ශ්රිතයක්
සාදමු:
num = 1
def func():
print(num)
func() # 1 ප්රතිදානය කරයි
දැන් print ශ්රිතයට පහළින් ඇති පේලියේ ප්රාදේශීය num
අපකීර්තනය කරමු. කේතය ක්රියාත්මක කිරීමෙන් පසු දෝෂයක්
ප්රතිදානය වේ. මෙය සිදුවන්නේ Python ශ්රිතය තුළ
num අපකීර්තනය කර නොමැති ප්රාදේශීය විචල්යයක් ලෙස
පමණක් දැකීම නිසාය:
num = 1
def func():
print(num) # දෝෂයක් ප්රතිදානය කරයි
num = 2
දැන් ශ්රිතය තුළ ඇති කේතය නැවත ලියමු, එවිට
num විචල්යයේ අගය 2 කින්
වැඩි වේ:
num = 1
def func():
num += 2 # දෝෂයක් ප්රතිදානය කරයි
දෝෂය ඇතිවන්නේ num += 2 ප්රකාශනය
පහත ලිවීම නියෝජනය කරන නිසාය:
num = num + 2
කෙසේ වෙතත්, එකතු කරනු ලබන ප්රාදේශීය විචල්යය තවමත් අපකීර්තනය කර නොමැත. ඒ අනුව Python දෝෂයක් ප්රතිදානය කරයි, මන්ද නොපවතින අගයකට අංකයක් එකතු කළ නොහැකිය.
පහත කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය කුමක්ද:
tst = '12'
def func():
tst = 12
return tst
print(tst)
පහත කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය කුමක්ද:
tst = 'abc'
def func():
tst = tst.upper()
return tst
func()
print(tst)
පහත කේතය ක්රියාත්මක කිරීමේ ප්රතිඵලය කුමක්ද:
tst = 'abc'
def func():
txt = tst.upper()
return txt
print(func())
print(tst)