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
Libérer: 2019-05-27 17:29:28
original
3363 Les gens l'ont consulté

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
Copier après la connexion

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()
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal