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!