代码之家  ›  专栏  ›  技术社区  ›  ask_me

Python中关于局部和全局范围的概念性问题

  •  -1
  • ask_me  · 技术社区  · 2 年前

    为什么这会起作用:

    g = 1
    print(g)
    
    def some():
        print(g)
    
    some()
    
    

    这项工作:

    g = 1
    print(g)
    
    def some():
        g = 5
        print(g)
    
    some()
    
    

    但这不会:

    g = 1
    def some():
        print(g)
        g = 5
        print(g)
    
    some()
    

    为了澄清,最后提到的一个错误:

    UnboundLocalError: local variable 'g' referenced before assignment
    

    我知道如何使用全局关键字修复它,但我想知道为什么它会抛出一个错误。此外,如果我想在局部更改一个全局变量的值之前访问它,应该做什么。

    0 回复  |  直到 2 年前