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是一个局部作用域。

好的,今天的内容就讲到这里啦~

 

 

(文章图片若有侵权,请联系作者删除)

posted @ 2018-06-11 22:39  木木烽  阅读(752)  评论(0编辑  收藏  举报