Maison >développement back-end >Tutoriel Python >Variables et portée en Python

Variables et portée en Python

高洛峰
高洛峰original
2017-02-28 17:00:151283parcourir

Introduction à la portée

Il existe 4 types de portée en python : L : local, portée locale, c'est-à-dire les variables définies dans la fonction

E : englobant, Le ; la portée locale de la fonction parent imbriquée est la portée locale de la fonction supérieure qui contient cette fonction, mais elle n'est pas globale

G : variables globales, qui sont des variables définies au niveau du module ; in, variables dans les modules fixes du système, tels que int, bytearray, etc. L'ordre de priorité des variables de recherche est : portée locale > portée externe > globale dans le module actuel > portée intégrée Python, qui est LEGB.


x = int(2.9) # int built-in
g_count = 0 # global
def outer():
o_count = 1 # enclosing
def inner():
i_count = 2 # local


Bien sûr, local et englobant sont relatifs, et les variables englobantes sont également locales par rapport à la couche supérieure.


#定义变量a
>>> a = 0
>>> print a
0
#定义函数p()
>>> def p():
... print a
... 
>>> p()
0
#定义函数p2()
>>> def p2():
... print a
... a = 3
... print a
... 
>>> p2() # 运行出错,外部变量a先被引用,不能重新赋值
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<interactive input>", line 2, in p2
UnboundLocalError: local variable 'a' referenced before assignment
#定义函数p3()
>>> def p3():
... a = 3 # 不引用直接赋值
... print a
... 
>>> p3()
3
>>> print a
0 # 外部变量a并未改变


Ce qui précède est l'explication détaillée des variables et des portées en Python introduites par l'éditeur Si vous en avez. Si vous avez des questions, laissez-moi un message et je vous répondrai à temps. Je voudrais également vous remercier tous pour votre soutien au site Web PHP chinois !

Pour plus d'articles liés aux variables et à la portée en Python, veuillez faire attention au site Web PHP 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