Is het mogelijk om globale variabelen te definiëren in een functie in Python

Hoe declareer ik een globale variabele in een functie in Python?

Dat wil zeggen, zodat het niet eerder hoeft te worden gedeclareerd, maar buiten de functie kan worden gebruikt.


Antwoord 1, autoriteit 100%

Ja, maar waarom?

def a():
    globals()['something'] = 'bob'

Antwoord 2, autoriteit 44%

def function(arguments):
    global var_name
    var_name = value #must declare global prior to assigning value

Dit werkt in elke functie, ongeacht of het in hetzelfde programma zit of niet.

Hier is een andere manier om het te gebruiken:

def function():
    num = #code assigning some value to num
    return num

OPMERKING: Als u de ingebouwde returngebruikt, wordt het programma (of de functie) automatisch gestopt, ongeacht of het klaar is of niet.

Je kunt dit gebruiken in een functie als deze:

if function()==5 #if num==5:
    #other code

Hierdoor zou je de variabele buiten de functie kunnen gebruiken. Hoeft niet per se globaal te worden verklaard.

Bovendien, om een ​​variabele van de ene functie naar de andere te gebruiken, kun je zoiets als dit doen:

import primes as p #my own example of a module I made
p.prevPrimes(10) #generates primes up to n
for i in p.primes_dict:
    if p.primes_dict[i]: #dictionary contains only boolean values
        print p.primes_dict[i]

Hierdoor kunt u de variabele in een andere functie of programma gebruiken zonder dat u een globale variabele of de ingebouwde returnhoeft te gebruiken.

Other episodes