全局变量,顶格,没缩进定义的
局部变量,有缩进的,在函数里的
quan='全局变量'
def t():
print(quan)
t()
-------------------------------------------------------------------------------
def t():
quan='函数里的会代替全局变量,只在函数里生效,全局的没变'
print(quan)
t()
print('全局的没变:',quan)
-------------------------------------------------------------------------------
def t():
global quan
quan='函数里加了global,全局的就会改变'
print(quan)
t()
print('全局的变了:',quan)
-------------------------------------------------------------------------------
name=['对于可变类型,可以对内部元素进行操作']
def t():
name.append('例如添加元素,这时全局变量可以改变')
print(name)
t()
print(name)
-------------------------------------------------------------------------------
name='全局变量'
def t():
# name='全局、局部都有或者只有局部变量'
# SyntaxError: name 'name' is assigned to before global declaration
global name
name='global声明全局变量时,头上只能有全局变量或者都没有,否则报错'
print(name)
t()
-------------------------------------------------------------------------------
# name='laoji'
# def xuexiao():
# name='laoda'
# def xueyuan():
# global name#它接受的是全局变量
# name='laoer'
# xueyuan()
# print(name)
# xuexiao()
# print(name)
# # 输出:
# # laoda
# # laoer
-------------------------------------------------------------------------------
name='laoji'
def xuexiao():
name='laoda'
def xueyuan():
# name='you'#加这个会报错SyntaxError: name 'name' is assigned to before nonlocal declaration
nonlocal name#它接受的是上一大级变量
name='laoer'
xueyuan()
print(name)
xuexiao()
print(name)
输出:
laoer
laoji