huyanmin 发表于 2020-12-28 12:25:17

python 20课 习题,略修改就报错,求详解

本帖最后由 huyanmin 于 2020-12-28 13:12 编辑

def outside():
    var = 5
    def inside():
      nonlocal var#此处由nonlocal改为global就报错,为什么?global应该放到任何地方都行啊
      print(var)
      var = 8
      
    inside()
outside()

叶小朵爸爸 发表于 2020-12-28 12:57:45

var = 5 为本地变量,而global为把本地的Var值声明为全局变量

jackz007 发表于 2020-12-28 13:10:22

本帖最后由 jackz007 于 2020-12-28 13:33 编辑

      因为 var 的确是属于函数 outside() 的局部变量,不是全局变量
      这样写绝对不会报错
var = 0
def outside():
    global var
    var = 5
    def inside():
      global var
      print(var)
      var = 8
      
    inside()
outside()
print(var)
页: [1]
查看完整版本: python 20课 习题,略修改就报错,求详解