Питхон глобалне, локалне и нелокалне променљиве (са примерима)

У овом упутству ћете научити о Питхон глобалним променљивим, локалним променљивим, нелокалним променљивим и где их користити.

Видео: Питхон локалне и глобалне променљиве

Глобалне променљиве

У Питхону је променљива декларисана изван функције или у глобалном опсегу позната као глобална променљива. То значи да се глобалној променљивој може приступити унутар или изван функције.

Погледајмо пример како се у Питхону креира глобална променљива.

Пример 1: Креирајте глобалну променљиву

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

Оутпут

 к унутра: глобално к споља: глобално

У горе наведеном коду креирали смо к као глобалну променљиву и дефинисали а foo()за испис глобалне променљиве к. Коначно, зовемо foo()који ће исписати вредност к.

Шта ако желите да промените вредност к унутар функције?

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

Оутпут

 УнбоундЛоцалЕррор: наведена локална променљива 'к' пре доделе

Излаз приказује грешку јер Питхон к третира као локалну променљиву и к такође није дефинисан унутра foo().

Да би ово успело, користимо globalкључну реч. Посетите Питхон Глобал Кеиворд да бисте сазнали више.

Локалне променљиве

Променљива декларисана унутар тела функције или у локалном опсегу позната је као локална променљива.

Пример 2: Приступ локалној променљивој изван опсега

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

Оутпут

 НамеЕррор: име 'и' није дефинисано

Излаз приказује грешку јер покушавамо да приступимо локалној променљивој и у глобалном опсегу, док локална променљива ради само унутар foo()или у локалном опсегу.

Погледајмо пример како се локална променљива креира у Питхону.

Пример 3: Креирајте локалну променљиву

Обично декларишемо променљиву унутар функције да бисмо креирали локалну променљиву.

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

Оутпут

 локално

Погледајмо ранији проблем где је к био глобална променљива и желели смо да изменимо к унутра foo().

Глобалне и локалне променљиве

Овде ћемо показати како користити глобалне променљиве и локалне променљиве у истом коду.

Пример 4: Коришћење глобалних и локалних променљивих у истом коду

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

Оутпут

 глобални глобални локални

У горњем коду декларишемо к као глобалну, а и као локалну променљиву у foo(). Затим користимо оператор множења *за модификовање глобалне променљиве к и исписујемо к и и.

Након позива foo(), вредност к постаје global globalзато што смо x * 2два пута користили штампач global. После тога исписујемо вредност локалне променљиве и тј local.

Пример 5: Глобална променљива и Локална променљива са истим именом

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

Оутпут

 локални к: 10 глобални к: 5

У горњем коду користили смо исто име к и за глобалну и за локалну променљиву. Добијамо другачији резултат када исписујемо исту променљиву јер је променљива декларисана у оба опсега, тј. Локални опсег унутра foo()и глобални опсег споља 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

У горњем коду постоји угнежђена inner()функција. Користимо nonlocalкључне речи за стварање нелокалне променљиве. inner()Функција је дефинисана у оквиру другу функцију outer().

Напомена : Ако променимо вредност нелокалне променљиве, промене ће се појавити у локалној променљивој.

Занимљиви Чланци...