大家好,关于一篇文章教你理解全局和非局部很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦,希望对各位有所帮助!
由于这两个关键字在开发过程中经常被用到,所以系统地了解它们的内部原理将会大有裨益。
global
全局关键字
nonlocal
nonlocal主要用在嵌套函数中,其中内部函数引用外部函数并修改其值,但仍保留其局部变量的作用域,从而在内部函数中修改外部函数定义的变量值。本质上,nonlocal相当于直接将外部变量引用到内部名称空间。 从下面的代码中可见
# 定义外部函数def outer_func(): # 定义外部函数变量x=50 # 打印命名空间内容print(f'external={locals()}') # 打印变量内存地址print(hex(id(x))) def inner_func(): # 使用nonlocal修改同名变量nonlocal x # 打印内部函数命名空间的内容print(f'internal={locals()}') # 打印x的内存地址print(hex( id(locals()['x']))) # 调用内部函数inner_func()# 运行外部函数outer_func()# 运行结果#External={'x': 50}#0x7ff8e8c3cfd8#Internal={'x ': 50}#0x7ff8e8c3cfd8 在上面的代码中,我们可以看到变量因此,可以得出结论,内部函数中标有nonlocal的变量本质上引用的是外部函数变量(两个函数打印出来的内存地址)是一样的(0x7ff8e8c3cfd8),实际运行结果可能与这里有所不同,可以进一步确认)。
在Python中,本地命名空间已经是最小的作用域,因此外部函数和内部函数都有自己的命名空间。
用户评论
这篇文章简直太赞了!把我以前一直困惑的 global 和 nonlocal 的区别弄了个通透!之前总觉得这两者很像,没想到用法完全不一样啊。终于把python的局限性学习清楚了!
有12位网友表示赞同!
我感觉这个标题有点过于吹牛了,虽然博主解释的很详细,但是全局变量和非全局变量的概念我觉得还是蛮抽象的。希望能再加入一些更具体的例子,比如在实际项目里是怎么应用的?
有7位网友表示赞同!
终于明白global 和 nonlocal 用法差异的区别了!这个解释非常清晰,还举了很多有趣的例子。之前一直搞混这两个概念,导致代码逻辑混乱,真是太感谢博主了,拯救了我的程序!
有14位网友表示赞同!
学习Python真是不容易啊!全局变量和非全局变量这块的确是比较头疼的问题,虽然博文写的很清楚,但我还是感觉理解不够深入。希望可以再结合更多案例进行讲解,这样更容易理解掌握。
有18位网友表示赞同!
python 的语法确实很强大,但是这种灵活性有时候也带来了一定的复杂度。 这个帖子解释了 global 和 nonlocal 的用法,我觉得很有用,可以让新手更好地理解Python代码结构。
有14位网友表示赞同!
感谢博主分享这份宝贵经验!之前我也遇到过关于global和nonlocal的问题,总是搞不清哪些地方应该使用哪个变量范围。现在终于理清思路了,可以更高效地编写Python代码了!
有12位网友表示赞同!
对于初学者来说,python确实是个非常不错的语言。博主的文章解释得很清晰,帮助我更好地理解了 global 和 nonlocal 的用法,感觉对学习Python更有方向性了!
有5位网友表示赞同!
之前就遇到过关于全局变量和局部变量的困惑,感觉这个博客终于给了我答案。虽然讲解很简明扼要,但对于我来说非常有用,能让我更快地区分这两个概念的使用场景。
有17位网友表示赞同!
我觉得这篇文章比较适合已经对 Python 有了一定的基础学习的人阅读。初学者可能需要花更多时间来理解这些概念,建议可以添加一些更基础的知识点讲解。
有13位网友表示赞同!
这个博客写的真好!让我快速掌握了 global 和 nonlocal 的区别,以前总是觉得这两个概念很难以理解,没想到这么简单!感谢博主的耐心解答!
有19位网友表示赞同!
Python真是个神奇的语言啊!全局变量和非全局变量这种特性,虽然听起来有点抽象,但确实很有用。 不过对于初学者来说,学习这些概念可能会需要一定的积累。
有19位网友表示赞同!
这个解释非常棒,终于明白global 和 nonlocal 究竟是用来干嘛的了!感觉我以前对 Python 的理解深度不足,现在多看了这篇文章,进步很大!
有9位网友表示赞同!
写博客的人很用心呀!对全局变量和非全局变量的讲解都很到位,而且还有很多具体的例子能帮助我们更好地理解。我觉得这个文章很有价值,可以推荐给其他想要学习 Python 的朋友们。
有20位网友表示赞同!
我一直觉得Python语言挺好学的,但有时候一些概念确实容易让人一头雾水。这篇文章解释了global 和 nonlocal ,感觉思路清晰,也很实用。感谢博主分享!
有9位网友表示赞同!
我觉得博客文章的篇幅可以再长一点,例如加入更多案例和情境展示,这样能更直观的帮助读者理解global 和 nonlocal 的作用。
有11位网友表示赞同!
学习编程确实是一个需要不断探索的过程,需要将理论知识与实践结合起来才能更好的理解。这篇文章虽然解释了全局变量和非全局变量的概念,但我感觉还需要更多实战练习来巩固这些知识。
有16位网友表示赞同!
之前也遇到过类似的问题,现在看来 global 和 nonlocal 确实很有必要深入了解一下,因为关系到Python代码的逻辑结构。感谢博主分享这篇文章!
有18位网友表示赞同!
这个解释非常实用,让我解决了困扰我很久的全局变量和非全局变量疑惑!博客文章写的很通俗易懂,非常适合初学者阅读。
有5位网友表示赞同!