Python关键字global和nolocal有什么关系?Python中global与nolocal的区别是什么

在python之中有两个关键字能够用来改变变量的作用域以及命名空间 , 它们就是global以及nolocal , 但是它们之间也是有一点差异和区别的 。下文会来详细的给大家讲解一下二者之间的关系以及区别 , 想要学习或者了解的小伙伴就一定要仔细阅读了 。

Python关键字global和nolocal有什么关系?Python中global与nolocal的区别是什么

文章插图
1.global关键字于nolocal关键字之前实际上是没有任何关系的 , 只不过它们二者之间有一个共同点 , 那就是都能够在作用域内去使用外层的变量 。
2.global与nolocal它们之间的区别就在于 , 虽然都是能够在局部作用域内去使用外层变量 。不过global只能够在当前作用域内去调用全局变量 , 并且这个当前作用域就要包含在全局之中 , 示例如下:
x = 1def outer():  global x  x += 1在以上的代码示例之中变量x是定义在全局范围内的 , 而只有在这个范围内的函数outer里面才可以去调用global 。
3.当以上示例之中的函数内还有一个函数的时候就不能够用global关键字了 , 从代码示例来看比较好理解 , 如下所示:
def outer():  x = 1    within():      nolocal x      x -= 5在上面这种情况下函数within被称为当前作用域 , 而函数outer则是外层作用域 , 再外面就是全局作用域了 。而within函数内无法去使用全局作用域内的变量 , 要使用外层作用域的变量x就得用到nolocal关键字 。
【Python关键字global和nolocal有什么关系?Python中global与nolocal的区别是什么】以上就是关于“Python关键字global和nolocal有什么关系?Python中global与nolocal的区别是什么”的全部内容了 , 希望对你有所帮助 。

    推荐阅读