Maison >développement back-end >Tutoriel Python >Comment utiliser des variables globales en Python où les variables globales ne sont pas créées

Comment utiliser des variables globales en Python où les variables globales ne sont pas créées

silencement
silencementoriginal
2019-05-27 17:29:283382parcourir

Comment utiliser des variables globales en Python où les variables globales ne sont pas créées

En Python, lors du référencement d'une variable, la recherche de cette variable consiste à trouver la portée locale (Local), la portée imbriquée (fonctions locales englobantes) et la portée globale (Global). , portée intégrée (module intégré) dans l'ordre, les règles dites LEGB. C'est-à-dire l'ordre dans lequel python fait référence aux variables : variables locales de la portée actuelle -> variables de la portée externe -> variables globales dans le module actuel -> variables intégrées de Python.

Cependant, lors de l'attribution d'une valeur à une variable à l'intérieur d'une fonction, il ne suit pas les règles LEGB mentionnées ci-dessus pour trouver d'abord la variable puis lui attribuer une valeur. En Python, lors de l'attribution d'une valeur à une variable dans une fonction, il existe la règle suivante : "Lors de l'attribution d'une valeur à un nom de variable dans une fonction (plutôt que de la référencer dans une expression), Python crée ou modifie toujours le nom de la variable. de la portée locale, à moins qu'elle n'ait été déclarée comme variable globale dans cette fonction. "

variables globales golbales et variables locales non locales en python

les mots clés globaux sont utilisé pour utiliser des variables globales dans des fonctions ou d'autres portées locales.

gcount = 0   #定义了一个全局变量,(可以省略global关键字)
 
def global_test():
    print (gcount)    #不修改,只是引用全局变量,不使用global关键字
    
def global_counter():
    global gcount    
    gcount +=1       #修改全局变量,需要使用global关键字
    return gcount

Output

1

2

3

le mot clé non local est utilisé dans Utilisation variables externes (non globales) dans des fonctions ou d’autres portées.

def make_counter(): 
    count = 0     #定义一个局部变量,该局部变量作用范围在make_counter()方法内
    def counter(): 
        nonlocal count   #在方法counter()中使用外层局部变量 count 
        count += 1 
        return count 
    return counter 
       
def make_counter_test(): 
  mc = make_counter() 
  print(mc())
  print(mc())
  print(mc())
 
make_counter_test()

Sortie

3

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn