Maagizo ya global katika Python
Hebu tuwe na kutofautisha kwa umma
i. Pia kuna kitendo
func, ambacho huongeza
kitengo kwa kutofautisha hiki:
i = 0
def func():
i += 1 # itatoa makosa
return i
Baada ya kutekeleza msimbo, makosa yatarudi,
kwa sababu kuna mgongano wa umma
i, iliyotangazwa kwa msimbo wa nje, na
i ya eneo,
ambayo huongezewa
1,
lakini kutofautisha bado haija
tangazwa. Ili kurekebisha hili
shida na kuweka kitendo kufanya kazi hasa na
kutofautisha kwa umma, unahitaji kutumia
maagizo global. Maagizo haya
yawakilisha tangazo ambalo
hutekelezwa kwa bloku zote za sasa za msimbo,
ambamo imewekwa.
Hebu tuandike tena mfano uliopita, kwa kutangaza
katika mwili wa kitendo global:
def func():
global i
i += 1
return i
print(func()) # itatoa 1
Katika msimbo ufuatao programu fulani alifanya makosa:
num = 4
def func():
num *= 2
return num
print(func())
Nini kibaya na msimbo huu? Tafuta na rekebisha kosa la muandishi wa msimbo.
Katika msimbo ufuatao programu fulani alifanya makosa:
num = 10
def func():
num -= 3
return i
print(func())
Nini kibaya na msimbo huu? Tafuta na rekebisha kosa la muandishi wa msimbo.