Home  >  Article  >  Backend Development  >  Variables and scope in Python

Variables and scope in Python

高洛峰
高洛峰Original
2017-02-28 17:00:151265browse

Scope introduction

The scope in python is divided into 4 situations: L: local, local scope, that is, the variables defined in the function;

E: enclosing, The local scope of the nested parent function is the local scope of the superior function that contains this function, but it is not global;

G: global variable, which is a variable defined at the module level; B: built-in, variables in system fixed modules, such as int, bytearray, etc. The priority order of searching variables is: scope local > outer scope > global in the current module > python built-in scope, which is LEGB.


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


Of course, local and enclosing are relative, and the enclosing variable is also local relative to the upper layer.


#定义变量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并未改变


The above is the detailed explanation of variables and scopes in Python introduced by the editor. If you have any questions, please Leave me a message and I will reply to you in time. I would also like to thank you all for your support of the PHP Chinese website!

For more articles related to variables and scope in Python, please pay attention to the PHP Chinese website!


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn