Global instruktsioon Pythonis

Oletame, et meil on väline globaalne muutuja i. Samuti on funktsioon func, mis lisab sellele muutujale ühe:

pythoni = 0
def func():
  i += 1 # annab vea
  return i

Pärast koodi käivitamist tekib viga, kuna tekib konflikt globaalse i vahel, mis on deklareeritud välimises koodis, ja lokaalse i vahel, millele liidetakse 1, kuid muutuja ise pole veel deklareeritud. Selle probleemi lahendamiseks ja funktsiooni seadistamiseks töötama just globaalse muutujaga, tuleb kasutada instruktsiooni global. See instruktsioon on deklaratsioon, mis kehtib kogu praeguse koodiploki kohta, milles see on määratletud.

Kirjutame üle eelmise näite, deklareerides funktsiooni kehas global:

pythondef func():
  global i
  i += 1
  return i
  
print(func()) # väljastab 1
Задание 1

Järgmises koodis tegi mingi programmeerija vea:

pythonnum = 4

def func():
  num *= 2
  return num

print(func())

Mis selle koodiga valesti on? Leidke ja parandage koodi autori viga.

Задание 2

Järgmises koodis tegi mingi programmeerija vea:

pythonnum = 10

def func():
  num -= 3
  return i

print(func())

Mis selle koodiga valesti on? Leidke ja parandage koodi autori viga.