python的作用域
Posted 木木烽
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的作用域相关的知识,希望对你有一定的参考价值。
昨天我们科普了一点点关于区块链的小知识,你应该对区块链有一个大致的了解了吧?
好的,今天我们要来讲一下python的作用域。什么是python的作用域,其实说白了就是参数赋值的有效期到哪里,也就是字典的有效期,而这个字典通常是不会显示地出现在我们面前的,不显示?难道还能隐藏?对的,真的是隐藏起来了,我们来看一段示例代码:
a = 1
LSF = vars()
LSF[\'a\']
#按回车,得到的结果是:1
LSF[\'a\'] += 1
a
#按回车,得到的结果是:2
我们来看一下上面 的代码,先是对a进行赋值,接着给LSF一个vars函数,类似于容量的东西,最终会返回一个看不见的字典,然后我们把a放到这个函数里面,得到的结果是一开始给a赋的值,也就是1。接着,我们尝试对LSF进行加法运算,也能得到正确的结果。这似乎还不能说明返回了一个字典。我们姑且这样认为吧~嘻嘻~
这个看不见的字典我们一般称为命名空间或者作用域,除全局作用域以外,上面每隔函数调用都将创建一个作用域。
接着,我们来看一下什么是局部作用域,局部作用域顾名思义就是只作用在函数内部的字典。我们来看一下示例代码:
def foo():a = 5
#按回车,直到出现<<<
a = 1
foo()
a
#按回车,得到的结果是:1
我们看一下上面的代码,我们先定义了一个foo函数,在这个函数里面,我们将a的值直接转化为5,也就是说,只要在这个函数内部,不管之前a的值是多少,都会被转化为5。接着,我们给a赋值1,然后调用一下这个函数,最后,我们在函数以外看一下a的值是多少,还是1,没有被foo函数转化为5,这在一定程度上说明a = 5是一个局部作用域。
好的,今天的内容就讲到这里啦~
(文章图片若有侵权,请联系作者删除)
以上是关于python的作用域的主要内容,如果未能解决你的问题,请参考以下文章