Kuidas kontrollida, kas Pythonis on muutuja

Täna näeme, kuidas kontrollida, kas muutuja on olemas või mitte. Pythonis saab muutuja defineerida kas globaalselt või lokaalselt.

Kui muutuja on määratletud funktsiooni sees, on sellel kohalik ulatus. Muidu (määratletuna väljaspool mis tahes funktsiooni) on sellel globaalne ulatus. Vaatame, kuidas nende olemasolu ükshaaval kontrollida.



Kohaliku muutuja olemasolu

Me kasutame kohalikud () meetod, et näha, kas muutuja on lokaalselt olemas. The kohalikud () meetod tagastab praeguse ulatuse kohalike muutujate sõnastiku. Võtame näite.

summ=4
def test(c):
  a = 3
  b = 4
  result = a + b + c
  if 'result' in locals():
    print("The result variable exists in the local scope. Value is:", result)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
  if 'summ' in locals():
    print("The summ variable exists in the local scope. Value is:", summ)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
test(4)

The result variable exists in the local scope. Value is: 11
Sorry, the variable does not exist in the local scope.

Ülaltoodud näites loome a test () funktsiooni. See arvutab kolme väärtuse summa ja salvestab selle tulemus muutuv.

Seejärel kontrollib, kas tulemus on kohalikus ulatuses olemas või mitte. Kuna see juhtub, hinnatakse seisundit Tõsi ja lause if-plokis jookseb.

The summa muutuja seevastu ei ole lokaalne. Seetõttu hinnatakse selle kui-tingimust Vale .

Globaalse muutuja olemasolu

Globaalse muutuja olemasolu kontrollimiseks kasutame globaalsed() meetod. See tagastab sõnastiku, mis sisaldab praeguse ulatuse globaalseid muutujaid. Võtame näite.

summ=4
def test(c):
  a = 3
  b = 4
  result = a + b + c
  if 'result' in globals():
    print("The result variable exists in the local scope. Value is:", result)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
  if 'summ' in globals():
    print("The summ variable exists in the local scope. Value is:", summ)
  else:
    print("Sorry, the variable does not exist in the local scope.")
  
test(4)

Väljund

Sorry, the variable does not exist in the local scope.
The summ variable exists in the local scope. Value is: 4

See on sama näide nagu ülal, kuid me kontrollime globaalset ulatust. Alates summa on globaalne muutuja, kuvatakse selle väärtus ja tulemus on lokaalne muutuja, mille seisundit hinnatakse Vale .