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's Global Keyword onder de knie krijgen: Hoe en wanneer te gebruiken

Python's Global Keyword onder de knie krijgen: Hoe en wanneer te gebruiken

Deze gids legt uit wat het Python global keyword is, de regels, praktische use cases en best practices voor het beheren van globale variabelen over modules heen.


Wat is het Global Keyword?

In Python laat het global keyword je declareren dat een variabele binnen een functie verwijst naar een module-level variabele in plaats van een nieuwe lokale. Dit is essentieel wanneer een functie een variabele moet lezen of wijzigen die buiten zijn eigen scope bestaat.


Regels voor het gebruiken van global

  • Variabelen aangemaakt binnen een functie zijn standaard lokaal.
  • Variabelen gedefinieerd op module-niveau zijn automatisch globaal; global is onnodig wanneer je ze alleen leest.
  • Gebruik global binnen een functie wanneer je wilt toewijzen aan een module-level variabele.
  • Het plaatsen van global buiten een functie heeft geen effect.

Praktisch gebruik van global

Hieronder zijn illustratieve voorbeelden die zowel de vallen als de correcte aanpak demonstreren.

Voorbeeld 1: Een globale variabele benaderen vanuit binnen een functie

c = 1 # globale variabele
def add():
    print(c)
add()

Output:

1

Hier wordt c met succes gelezen omdat geen toewijzing plaatsvindt binnen add().

Voorbeeld 2: Poging een globale variabele te wijzigen zonder global

c = 1 # globale variabele
def add():
    c = c + 2 # probeert c te wijzigen
    print(c)
add()

Output:

UnboundLocalError: local variable 'c' referenced before assignment
c behandelt als een nieuwe lokale variabele die gerefereerd wordt vóór toewijzing.

Voorbeeld 3: Een globale variabele wijzigen met global

c = 0 # globale variabele
def add():
    global c
    c = c + 2
    print("Binnen add():", c)
add()
print("In main:", c)

Output:

Binnen add(): 2
In main: 2

Door global c te declareren, updated de functie de module-level c, en is de wijziging zichtbaar buiten de functie.


Globale variabelen delen over Python Modules

Voor grotere applicaties is het gebruikelijk om configuratie te centraliseren in een toegewijde module, zoals config.py. Andere modules kunnen deze waarden importeren en wijzigen, wat consistente state over het programma mogelijk maakt.

Voorbeeld 4: Cross-Module Globale Variabelen

Maak config.py:

a = 0
b = "leeg"

Maak update.py om de globals te wijzigen:

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

Maak main.py om de wijzigingen te verifiëren:

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

Output:

10
alfabet

Dit patroon houdt gedeelde state op één plek terwijl gecontroleerde updates vanuit andere modules mogelijk zijn.


global gebruiken in Geneste Functies

Wanneer een geneste functie een variabele moet wijzigen die lokaal is voor een outer-functie, kan het global keyword nog steeds toegepast worden om een werkelijk globale variabele aan te maken.

Voorbeeld 5: Globale Variabele in een Geneste Functie

def foo():
    x = 20
    def bar():
        global x
        x = 25
        print("Voor aanroep bar:", x)
        print("Aanroep bar nu")
        bar()
        print("Na aanroep bar:", x)
    foo()
    print("x in main:", x)

Output:

Voor aanroep bar: 20
Aanroep bar nu
Na aanroep bar: 20
x in main: 25

Binnen foo() blijft x een lokale variabele. De geneste bar() declareert x als globaal, dus de toewijzing beïnvloedt de module-level x en is zichtbaar na afloop van foo().


Hoewel global handig kan zijn, is het over het algemeen het beste om functies te ontwerpen die nieuwe waarden retourneren in plaats van globale state te muteren. Dit bevordert duidelijkere code en eenvoudigere testing. Voor gedetailleerde taalregels, zie de officiële Python-documentatie over de global statement.

Python

  1. Python Datatypes onder de knie krijgen: Een praktische gids
  2. Python Operators onder de knie krijgen: Een uitgebreide gids
  3. Python Pass Statement onder de knie krijgen: Een praktische gids
  4. Python Functie-argumenten onder de knie krijgen: Positionele, Keyword en Default Parameters
  5. Python Global, Local en Nonlocal Variabelen begrijpen
  6. Python-dictionaries beheersen: aanmaken, manipuleren en geavanceerde technieken
  7. Python-iterators: hoe ze werken en hoe je je eigen maakt
  8. Python-closures uitgelegd: hoe geneste functies variabelen vangen
  9. Python datetime beheersen: praktische gids voor datums, tijden en tijdzones
  10. Python Overzicht: Hoog-Niveau, Leesbaar, Interactief & Object-Georiënteerd
  11. Python Variabele Typen: Datatypes Begrijpen en Gebruiken