nonlocal 函数外层定义 内层函数使用
错误的原因,就是使用了未定义的局部变量,然而num2也不是全局变量,只是fun2函数的外层变量,强行使用global定义num2的话同样会报错(
def fun():
num2 = 3
def fun2():
nonlocal num2
num2 *= 2
print("num2=", num2)
return fun2()
fun()
global外部可以调用
def fun():
global num1
num1=2
print("函数内修改后num1=",num1)
num1=1
print("初始num1=",num1)
fun()
print("运行完函数后num1=",num1)
a = 1 # 这个是全局变量 全局这个.py 任意一个函数或者方法都可以使用
def test1():
a = 2 # 这个是局部变量 在这个函数可以使用
class clazz1():
a = 3 # 这个静态变量 在当前类可以使用
def test2(self):
a = 4 # 这个是局部变量 在这个方法可以使用
self.b = 5 # 这个是实例变量 属性b 在当前类共享