web-dev-qa-db-fra.com

Est-il possible de définir des variables globales dans une fonction en Python

Comment déclarer une variable globale dans une fonction en Python?

Autrement dit, afin qu'il ne doive pas être déclaré avant mais peut être utilisé en dehors de la fonction.

37
MrROY

Oui mais pourquoi?

def a():
    globals()['something'] = 'bob'
31
Jon Clements
def function(arguments):
    global var_name
    var_name = value #must declare global prior to assigning value

Cela fonctionnera dans n'importe quelle fonction, que ce soit dans le même programme ou non.

Voici une autre façon de l'utiliser:

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

REMARQUE: L'utilisation du return intégré arrêtera automatiquement le programme (ou la fonction), qu'il soit terminé ou non.

Vous pouvez l'utiliser dans une fonction comme celle-ci:

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

Cela vous permettrait d'utiliser la variable en dehors de la fonction. Ne doit pas nécessairement être déclaré global.

De plus, pour utiliser une variable d'une fonction à une autre, vous pouvez faire quelque chose comme ceci:

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]

Cela vous permettra d'utiliser la variable dans une autre fonction ou un autre programme sans avoir à utiliser une variable globale ou le return intégré.

11
Rushy Panchal