全局标量与局部变量
声明规范:全局变量全部大写,局部变量全部小写
在python中,顶头写的变量就是全局变量,即没有任何缩进定义的变量,定义之后全局变量在任何位置都可被调用。
局部变量就是在子程序中定义的变量,例如在函数中的变量。
name = "ali"
def change_name():
name = "大帅比"
print(name)
return name
change_name()
print(name)
在函数中修改全局变量,需在函数体开头引用global关键字
name = "ali"
def change_name():
global name
name = "大帅比"
print("ali",name)
return name
change_name()
print(name)
在函数中不使用global关键字,对于可变类型,可对元素进行操作
name = ["ali","19"]
def change_name():
name.append("大帅比")
print(name)
return name
change_name()
函数多层嵌套调用全局标量
name = "奔驰"
def weihou():
name = "宝马"
def weiweihou():
global name
name = "奥迪"
weiweihou()
print(name)
print(name)
weihou()
print(name)
在函数多层嵌套里nonlocat关键字,引用上一层函数的变量
name = "奔驰"
def weihou():
name = "宝马"
def weiweihou():
nonlocal name
name = "奥迪"
weiweihou()
print(name)
print(name)
weihou()
print(name)