块级作用域
python中变量没有块级作用域,下面代码能够正常运行
if True: name = 'xiaoming' print(name)
局部作用域
局部变量:定义在函数内部的变量叫局部变量,只能在函数内部使用
def test(): a = 10 test() # 此处会报错 # print(a)
全局作用域
全局变量:定义在函数外部的变量叫全局变量,哪里都可以使用(但是不能修改)
num = 20 def show(): # 加上这句代码,就可以在函数内部修改全局变量 global num num = 30 print(num)
show() print(num)
> 当函数内部与外部有同名变量时,优先使用内部的 说明: 1. 全部变量在函数内部只能使用不能修改 2. 若要在函数内部修改全局变量,通过global关键字声明 - nonlocal - 内部函数使用外部函数的局部变量时使用 ```python def wai(): age = 20 def nei(): # 使用外层函数的局部变量 nonlocal age age = 30 print(age) nei() print(age) wai()
加上nonlocal就可以在内部函数中修改外部函数的局部变量了