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, that is, the local scope of the superior function that contains this function, but not global;
G: global variables, which are variables 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 the editor will reply to you in time. I would also like to thank everyone for your support of the Script House website!