Globální, místní a nelokální proměnné Pythonu (s příklady)

V tomto kurzu se dozvíte o globálních proměnných Pythonu, místních proměnných, nelokálních proměnných a o tom, kde je použít.

Video: Python Local and Global Variables

Globální proměnné

V Pythonu je proměnná deklarovaná mimo funkci nebo v globálním rozsahu známá jako globální proměnná. To znamená, že ke globální proměnné lze přistupovat uvnitř nebo vně funkce.

Podívejme se na příklad toho, jak se v Pythonu vytváří globální proměnná.

Příklad 1: Vytvoření globální proměnné

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

Výstup

 x inside: global x outside: global

Ve výše uvedeném kódu jsme vytvořili x jako globální proměnnou a definovali a foo()pro tisk globální proměnné x. Nakonec zavoláme foo()který vytiskne hodnotu x.

Co když chcete změnit hodnotu x uvnitř funkce?

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

Výstup

 UnboundLocalError: místní proměnná 'x' odkazovaná před přiřazením

Výstup ukazuje chybu, protože Python zachází s x jako s lokální proměnnou a x také není definováno uvnitř foo().

Aby to fungovalo, používáme globalklíčové slovo. Navštivte globální klíčové slovo Pythonu a dozvíte se více.

Místní proměnné

Proměnná deklarovaná uvnitř těla funkce nebo v místním oboru je známá jako místní proměnná.

Příklad 2: Přístup k místní proměnné mimo obor

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

Výstup

 NameError: název 'y' není definován

Výstup ukazuje chybu, protože se pokoušíme přistupovat k místní proměnné y v globálním rozsahu, zatímco lokální proměnná funguje pouze uvnitř foo()nebo v lokálním rozsahu.

Podívejme se na příklad, jak se v Pythonu vytváří lokální proměnná.

Příklad 3: Vytvoření místní proměnné

Normálně deklarujeme proměnnou uvnitř funkce, abychom vytvořili lokální proměnnou.

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

Výstup

 místní

Pojďme se podívat na dřívější problém, kde x byla globální proměnná a my jsme chtěli upravit x uvnitř foo().

Globální a lokální proměnné

Zde si ukážeme, jak používat globální proměnné a lokální proměnné ve stejném kódu.

Příklad 4: Použití globálních a lokálních proměnných ve stejném kódu

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

Výstup

 globální globální místní

Ve výše uvedeném kódu deklarujeme x jako globální a y jako lokální proměnnou v foo(). Potom použijeme operátor násobení *k úpravě globální proměnné x a vytiskneme x i y.

Po vyvolání se foo()hodnota x stane, global globalprotože jsme použili x * 2k tisku dvakrát global. Poté vytiskneme hodnotu lokální proměnné y tj local.

Příklad 5: Globální proměnná a místní proměnná se stejným názvem

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

Výstup

 místní x: 10 globální x: 5

Ve výše uvedeném kódu jsme použili stejný název x pro globální proměnnou i lokální proměnnou. Když vytiskneme stejnou proměnnou, získáme jiný výsledek, protože proměnná je deklarována v obou oborech, tj. Lokální obor uvnitř foo()a globální obor venku 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

Ve výše uvedeném kódu je vnořená inner()funkce. nonlocalK vytvoření nelokální proměnné používáme klíčová slova. inner()Funkce je definována v rámci jiné funkce outer().

Poznámka : Pokud změníme hodnotu nelokální proměnné, změny se objeví v lokální proměnné.

Zajímavé články...