Python globālie, lokālie un lokālie mainīgie (ar piemēriem)

Šajā apmācībā jūs uzzināsiet par Python globālajiem mainīgajiem, lokālajiem mainīgajiem, lokālajiem mainīgajiem un kur tos izmantot.

Video: Python vietējie un globālie mainīgie

Globālie mainīgie

Programmā Python mainīgais, kas deklarēts ārpus funkcijas vai globālā mērogā, ir pazīstams kā globālais mainīgais. Tas nozīmē, ka globālajam mainīgajam var piekļūt funkcijas iekšpusē vai ārpus tās.

Apskatīsim piemēru tam, kā Python tiek izveidots globālais mainīgais.

1. piemērs: izveidojiet globālo mainīgo

 x = "global" def foo(): print("x inside:", x) foo() print("x outside:", x)

Rezultāts

 x iekšpusē: globāls x ārpusē: globāls

Iepriekš minētajā kodā mēs izveidojām x kā globālo mainīgo un definējām a, foo()lai drukātu globālo mainīgo x. Visbeidzot, mēs izsaucam, foo()kas izdrukās x vērtību.

Ko darīt, ja vēlaties mainīt x vērtību funkcijas iekšpusē?

 x = "global" def foo(): x = x * 2 print(x) foo()

Rezultāts

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

Izvade parāda kļūdu, jo Python apstrādā x kā lokālu mainīgo un x arī nav definēts iekšpusē foo().

Lai tas darbotos, mēs izmantojam globalatslēgvārdu. Apmeklējiet Python Global Keyword, lai uzzinātu vairāk.

Vietējie mainīgie

Mainīgais, kas deklarēts funkcijas ķermenī vai lokālā darbības jomā, ir pazīstams kā vietējais mainīgais.

2. piemērs: Piekļuve lokālajam mainīgajam ārpus darbības jomas

 def foo(): y = "local" foo() print(y)

Rezultāts

 NameError: nosaukums 'y' nav definēts

Izvade parāda kļūdu, jo mēs cenšamies piekļūt lokālajam mainīgajam y globālā mērogā, turpretī lokālais mainīgais darbojas tikai iekšējā foo()vai lokālajā darbības jomā.

Apskatīsim piemēru par to, kā vietējais mainīgais tiek izveidots Python.

3. piemērs: izveidojiet lokālo mainīgo

Parasti mēs deklarējam mainīgo funkcijas iekšpusē, lai izveidotu lokālu mainīgo.

 def foo(): y = "local" print(y) foo()

Rezultāts

 vietējais

Apskatīsim agrāko problēmu, kur x bija globāls mainīgais, un mēs vēlējāmies modificēt x iekšpusē foo().

Globālie un lokālie mainīgie

Šeit mēs parādīsim, kā izmantot globālos un lokālos mainīgos tajā pašā kodā.

4. piemērs: Globālo un lokālo mainīgo izmantošana vienā un tajā pašā kodā

 x = "global " def foo(): global x y = "local" x = x * 2 print(x) print(y) foo()

Rezultāts

 globāls globāls lokāls

Iepriekš minētajā kodā mēs deklarējam x kā globālu un y kā lokālu mainīgo foo(). Pēc tam mēs izmantojam reizināšanas operatoru, *lai modificētu globālo mainīgo x, un mēs izdrukājam gan x, gan y.

Pēc izsaukšanas foo()x vērtība kļūst global globaltāpēc, ka mēs x * 2divas reizes izmantojām drukāšanu global. Pēc tam mēs izdrukājam vietējā mainīgā y vērtību local.

5. piemērs: Globālais mainīgais un Vietējais mainīgais ar tādu pašu nosaukumu

 x = 5 def foo(): x = 10 print("local x:", x) foo() print("global x:", x)

Rezultāts

 vietējais x: 10 globālais x: 5

Iepriekš minētajā kodā mēs izmantojām to pašu nosaukumu x gan globālajam, gan lokālajam mainīgajam. Drukājot vienu un to pašu mainīgo, mēs iegūstam atšķirīgu rezultātu, jo mainīgais tiek deklarēts abās jomās, ti, lokālā darbības joma iekšpusē foo()un globālā darbības joma ārpusē foo().

When we print the variable inside foo() it outputs local x: 10. This is called the local scope of the variable.

Similarly, when we print the variable outside the foo(), it outputs global x: 5. This is called the global scope of the variable.

Nonlocal Variables

Nonlocal variables are used in nested functions whose local scope is not defined. This means that the variable can be neither in the local nor the global scope.

Let's see an example of how a nonlocal variable is used in Python.

We use nonlocal keywords to create nonlocal variables.

Example 6: Create a nonlocal variable

 def outer(): x = "local" def inner(): nonlocal x x = "nonlocal" print("inner:", x) inner() print("outer:", x) outer()

Output

 inner: nonlocal outer: nonlocal

Iepriekš minētajā kodā ir ievietota inner()funkcija. Mēs izmantojam nonlocalatslēgvārdus, lai izveidotu lokālu mainīgo. inner()Funkcija ir definēta darbības citas funkcijas outer().

Piezīme : Ja mēs mainām nepilokāla mainīgā vērtību, izmaiņas tiek parādītas lokālajā mainīgajā.

Interesanti raksti...