Python globālais atslēgvārds (ar piemēriem)

Šajā rakstā uzzināsiet par globālo atslēgvārdu, globālo mainīgo un to, kad jāizmanto globālie atslēgvārdi.

Pirms lasāt šo rakstu, pārliecinieties, ka esat ieguvis dažus Python globālo, vietējo un lokālo mainīgo pamatus.

Kāds ir globālais atslēgvārds

Programmā Python globalatslēgvārds ļauj mainīt mainīgo ārpus pašreizējās darbības jomas. To izmanto, lai izveidotu globālu mainīgo un veiktu izmaiņas mainīgajā lokālā kontekstā.

Globālā atslēgvārda noteikumi

globalAtslēgvārda pamatnoteikumi Python ir šādi:

  • Kad mēs izveidojam mainīgo funkcijas iekšpusē, tas pēc noklusējuma ir lokāls.
  • Kad mēs definējam mainīgo ārpus funkcijas, pēc noklusējuma tas ir globāls. Jums nav jāizmanto globalatslēgvārds.
  • Mēs izmantojam globalatslēgvārdu, lai lasītu un rakstītu globālo mainīgo funkcijas iekšpusē.
  • Izmantot globalatslēgvārda ārpus funkcija neietekmē.

Globālā atslēgvārda izmantošana

Ņemsim piemēru.

1. piemērs: Piekļuve globālajam mainīgajam no funkcijas iekšienes

 c = 1 # global variable def add(): print(c) add()

Kad mēs palaidīsim iepriekš minēto programmu, izeja būs:

 1

Tomēr mums var būt daži scenāriji, kad mums ir jāmaina globālais mainīgais no funkcijas iekšpuses.

2. piemērs: Globālā mainīgā modificēšana no funkcijas iekšienes

 c = 1 # global variable def add(): c = c + 2 # increment c by 2 print(c) add()

Palaižot iepriekš minēto programmu, izvadē tiek parādīta kļūda:

 UnboundLocalError: vietējais mainīgais 'c', uz kuru atsauce ir piešķirta pirms piešķiršanas

Tas ir tāpēc, ka mēs varam piekļūt tikai globālajam mainīgajam, bet nevaram to modificēt no funkcijas iekšpuses.

Risinājums tam ir globalatslēgvārda izmantošana.

3. piemērs: Globālā mainīgā mainīšana no funkcijas iekšpuses, izmantojot globālo

 c = 0 # global variable def add(): global c c = c + 2 # increment by 2 print("Inside add():", c) add() print("In main:", c)

Kad mēs palaidīsim iepriekš minēto programmu, izeja būs:

 Iekšpusē pievienot (): 2 Galvenais: 2

Iepriekš minētajā programmā mēs definējam c kā globālu atslēgvārdu add()funkcijas iekšpusē .

Tad mēs palielinām mainīgo c ar 1, ti c = c + 2. Pēc tam mēs izsaucam add()funkciju. Visbeidzot, mēs izdrukājam globālo mainīgo c.

Kā redzam, izmaiņas notika arī globālajā mainīgajā ārpus funkcijas c = 2,.

Globālie mainīgie visā Python moduļos

Programmā Python mēs izveidojam vienu moduli, config.pylai glabātu globālos mainīgos un koplietotu informāciju visos Python moduļos vienā un tajā pašā programmā.

Lūk, kā mēs varam koplietot globālos mainīgos visos pitona moduļos.

4. piemērs: koplietojiet globālu mainīgo visā Python moduļos

Izveidojiet config.pyfailu globālo mainīgo glabāšanai

 a = 0 b = "empty"

Izveidojiet update.pyfailu, lai mainītu globālos mainīgos

 import config config.a = 10 config.b = "alphabet"

Izveidojiet main.pyfailu, lai pārbaudītu vērtības izmaiņas

 import config import update print(config.a) print(config.b)

Kad palaidīsim main.pyfailu, izeja būs

 10 alfabēts

Ar iepriekš minēto, mēs esam izveidojuši trīs faili: config.py, update.py, un main.py.

Modulis config.pyglabā globālos mainīgos a un b. Šajā update.pyfailā, mēs importēt config.pymoduli un mainīt vērtības a un b. Līdzīgi, jo main.pyfailu, mēs importējam abi config.pyun update.pymoduli. Visbeidzot, mēs izdrukājam un pārbaudām globālo mainīgo vērtības neatkarīgi no tā, vai tās tiek mainītas vai nē.

Globālas ligzdotās funkcijas

Lūk, kā ligzdotajā funkcijā var izmantot globālo mainīgo.

5. piemērs: Globālā mainīgā izmantošana ligzdotajā funkcijā

 def foo(): x = 20 def bar(): global x x = 25 print("Before calling bar: ", x) print("Calling bar now") bar() print("After calling bar: ", x) foo() print("x in main: ", x)

Rezultāts ir:

 Pirms zvana joslas: 20 Zvana josla tūlīt Pēc zvana joslas: 20 x galvenajā: 25

Iepriekš minētajā programmā mēs ligzdotās funkcijas ietvaros paziņojām par globālo mainīgo bar(). foo()Funkcijas iekšpusē x nav globālā atslēgvārda ietekmes.

Pirms un pēc izsaukšanas bar()mainīgais x ņem vietējā mainīgā vērtību, ti x = 20. Ārpus foo()funkcijas mainīgais x iegūs vērtību, kas definēta bar()funkcijā, ti x = 25. Tas ir tāpēc, ka mēs esam izmantojuši globalatslēgvārdu x, lai izveidotu globālo mainīgo bar()funkcijas iekšpusē (lokālais tvērums).

Ja mēs veicam kādas izmaiņas bar()funkcijas iekšpusē , izmaiņas parādās ārpus lokālās darbības jomas, ti foo().

Interesanti raksti...