How to use global variables in Python where global variables are not created

silencement
Release: 2019-05-27 17:29:28
Original
3350 people have browsed it

How to use global variables in Python where global variables are not created

In Python, when a variable is referenced, the search for the variable is based on local scope (Local), nested scope (Enclosing function locals), and global scope. It is carried out in the order of domain (Global) and built-in scope (builtins module), which is the so-called LEGB rule. That is, the order in which python refers to variables: current scope local variables -> outer scope variables -> global variables in the current module -> python built-in variables.

However, when assigning a value to a variable inside a function, it does not follow the LEGB rules mentioned above to first find the variable and then assign a value to the variable. In Python, when assigning a value to a variable in a function, there is the following rule: "When assigning a value to a variable name in a function (rather than referencing it in an expression), Python always creates or changes The variable name of the local scope, unless it has been declared as a global variable in that function. ”

golbal global variables and nonlocal local variables in python

global key Words are used to use global variables in functions or other local scopes.

gcount = 0   #定义了一个全局变量,(可以省略global关键字)
 
def global_test():
    print (gcount)    #不修改,只是引用全局变量,不使用global关键字
    
def global_counter():
    global gcount    
    gcount +=1       #修改全局变量,需要使用global关键字
    return gcount
Copy after login

Output

1

2

3

nonlocal keyword is used in Use outer (non-global) variables in functions or other scopes.

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()
Copy after login

Output

3

The above is the detailed content of How to use global variables in Python where global variables are not created. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template