Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Industrial programming >> Python

Python globale, lokale en niet-lokale variabelen

Globale, lokale en niet-lokale variabelen van Python

In deze zelfstudie leer je over algemene variabelen, lokale variabelen en niet-lokale variabelen van Python en waar je ze kunt gebruiken.

Video:Python lokale en globale variabelen

Globale variabelen

In Python staat een variabele die buiten de functie of in een globaal bereik is gedeclareerd, bekend als een globale variabele. Dit betekent dat een globale variabele binnen of buiten de functie toegankelijk is.

Laten we een voorbeeld bekijken van hoe een globale variabele wordt gemaakt in Python.

Voorbeeld 1:maak een globale variabele

x = "global"

def foo():
    print("x inside:", x)


foo()
print("x outside:", x)

Uitvoer

x inside: global
x outside: global

In de bovenstaande code hebben we x . gemaakt als een globale variabele en definieerde een foo() om de globale variabele x af te drukken . Ten slotte noemen we de foo() die de waarde van x . zal afdrukken .

Wat als u de waarde van x wilt wijzigen binnen een functie?

x = "global"

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

foo()

Uitvoer

UnboundLocalError: local variable 'x' referenced before assignment

De uitvoer toont een fout omdat Python x . behandelt als een lokale variabele en x is ook niet gedefinieerd binnen foo() .

Om dit te laten werken, gebruiken we de global trefwoord. Bezoek Python Global Keyword voor meer informatie.


Lokale variabelen

Een variabele die in de hoofdtekst van de functie of in het lokale bereik wordt gedeclareerd, staat bekend als een lokale variabele.

Voorbeeld 2:Toegang tot lokale variabele buiten het bereik

def foo():
    y = "local"


foo()
print(y)

Uitvoer

NameError: name 'y' is not defined

De uitvoer toont een fout omdat we proberen toegang te krijgen tot een lokale variabele y in een globaal bereik, terwijl de lokale variabele alleen werkt binnen foo() of lokaal bereik.


Laten we een voorbeeld bekijken van hoe een lokale variabele wordt gemaakt in Python.

Voorbeeld 3:maak een lokale variabele

Normaal gesproken declareren we een variabele binnen de functie om een ​​lokale variabele te maken.

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

foo()

Uitvoer

local

Laten we eens kijken naar het eerdere probleem waarbij x was een globale variabele en we wilden x . aanpassen binnen foo() .


Globale en lokale variabelen

Hier laten we zien hoe u globale variabelen en lokale variabelen in dezelfde code kunt gebruiken.

Voorbeeld 4:Gebruik van globale en lokale variabelen in dezelfde code

x = "global "

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

foo()

Uitvoer

global global 
local

In de bovenstaande code verklaren we x als een globale en y als een lokale variabele in de foo() . Vervolgens gebruiken we de vermenigvuldigingsoperator * om de globale variabele x te wijzigen en we printen beide x en y .

Na het bellen met de foo() , de waarde van x wordt global global omdat we de x * 2 . hebben gebruikt twee keer afdrukken global . Daarna printen we de waarde van de lokale variabele y bijv. local .


Voorbeeld 5:Globale variabele en Lokale variabele met dezelfde naam

x = 5

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


foo()
print("global x:", x)

Uitvoer

local x: 10
global x: 5

In de bovenstaande code hebben we dezelfde naam x . gebruikt voor zowel globale variabele als lokale variabele. We krijgen een ander resultaat als we dezelfde variabele afdrukken omdat de variabele in beide scopes wordt gedeclareerd, d.w.z. de lokale scope binnen foo() en wereldwijd bereik buiten foo() .

Wanneer we de variabele binnen foo() print afdrukken het voert local x: 10 uit . Dit wordt het lokale bereik van de variabele genoemd.

Evenzo, wanneer we de variabele buiten de foo() , geeft het global x:5 . Dit wordt het globale bereik van de variabele genoemd.


Niet-lokale variabelen

Niet-lokale variabelen worden gebruikt in geneste functies waarvan het lokale bereik niet is gedefinieerd. Dit betekent dat de variabele noch in het lokale noch in het globale bereik kan zijn.

Laten we een voorbeeld bekijken van hoe een niet-lokale variabele wordt gebruikt in Python.

We gebruiken nonlocal trefwoorden om niet-lokale variabelen te maken.

Voorbeeld 6:Maak een niet-lokale variabele

def outer():
    x = "local"

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

    inner()
    print("outer:", x)


outer()

Uitvoer

inner: nonlocal
outer: nonlocal

In de bovenstaande code is er een geneste inner() functie. We gebruiken nonlocal trefwoorden om een ​​niet-lokale variabele te maken. De inner() functie is gedefinieerd in het kader van een andere functie outer() .

Opmerking :Als we de waarde van een niet-lokale variabele wijzigen, verschijnen de wijzigingen in de lokale variabele.


Python

  1. C Variabelen, constanten en literalen
  2. Python-sleutelwoorden en -ID's
  3. Python-verklaring, inspringing en opmerkingen
  4. Python-variabelen, constanten en literalen
  5. Python Type Conversie en Type Casting
  6. Python invoer, uitvoer en import
  7. Algemeen Python-sleutelwoord
  8. Python-nummers, typeconversie en wiskunde
  9. Python-directory en bestandsbeheer
  10. Python-fouten en ingebouwde uitzonderingen
  11. type() en isinstance() in Python met voorbeelden