问:全局变量和局部变量变量名是否一样?

答:全局变量和局部变量变量名能够一样

  1. 在函数内能够拜访全局变量(foo0),但无奈间接批改全局变量(foo3
  2. 函数内从新定义一个和全局变量同名的局部变量(foo1)也是能够的,然而局部变量和全局变量的作用域不同,不相互影响。
  3. 如果想要批改全局变量,须要用到global关键字(foo2
  4. 对于list这种数据类型,状况和string又不太一样,函数内能够管制全局变量的元素(foo4
a = 2b = [1, 2, 3, 4, 5]def foo0():    print(a)def foo1():    a = 1    print(a)def foo2():    global a    a += 1    print(a)    def foo3():    a += 1    print(a)def foo4():    b.append(6)    print(b)if __name__ == '__main__':    foo0()    // 后果:2    foo1()    // 后果:1    foo2()    // 后果:3    foo3()    // 后果:UnboundLocalError: local variable 'a' referenced before assignment        print(b) // 后果:[1, 2, 3, 4, 5]    foo4()     // 后果:[1, 2, 3, 4, 5, 6]    print(b) // 后果:[1, 2, 3, 4, 5, 6]


本篇文章由一文多发平台ArtiPub主动公布