x = 15 # 全局变量G
def func_a():
print(x)
def func_b():
print(x)
def func_c():
global x # 在定义函数内声明x为全局变量后,才可以调用x,否则出现错误;
x1 = x + 1 # 此时x1 = 16
x += 5 # 此时x保持为全局变量,变为20;
print(x)
print(x1)
func_a() # 15
func_b() # 15
func_c() # 16
print(x) # 20
一、Python中的域:
L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域
二、Python 访问局部变量和全局变量的规则:
以 L –> E –> G –>B 的规则查找,即:在局部找不到,便会去局部外的局部找(例如闭包),再找不到就会去全局找,再者去内建中找。
如果找不到则抛出 UnboundLocalError 异常。
标签:全局变量,作用域,global,func,print,x1 From: https://www.cnblogs.com/zqb190210/p/17170611.html