当前位置: 首页 > news >正文

大连 网站建设 有限公司小说推文万能关键词

大连 网站建设 有限公司,小说推文万能关键词,怎样免费设计网站建设,系统开发流程8个步骤命名空间是名称与对象之间的关系,可以将命名空间看做是字典,其中的键是名称,值是对象。 命名空间不共享名称。 在命名空间中的名称能将任何python对象作为值,在不同的命名空间中相同的名称可以与不同的对象相关联。但是&#xf…

命名空间是名称与对象之间的关系,可以将命名空间看做是字典,其中的键是名称,值是对象。

命名空间不共享名称。

在命名空间中的名称能将任何python对象作为值,在不同的命名空间中相同的名称可以与不同的对象相关联。但是,如果存在名称解析协议,则多个命名空间可以一起工作来解析名称。也就是说,如果有多个命名空间(总是有的),那么可以定义搜索的顺序,依次在不同的命名空间里来查找某个名称(或确认其不存在于任何认可的命名空间)。在python中,将这一过程定义为作用域。

作用域搜索规则:LEGB

L:局部的(local)

E:封闭的(Enclosing)

G:全局的(Global)

B:内置的(Built-in)

一、局部命名空间

函数内部的命名空间,在调用函数的时候生成,调用结束时消失。当局部命名空间有效时,它是第一个用于检查某个名字存在性的命名空间。如果在局部命名空间内找到该名称,则返回与名字相关联的对象,反之提示出错。

二、全局命名空间

python在模块中维护命名空间,模块是一些python文件--包含函数等对象,并且可以导入其他程序使用。当某个模块被导入之后,该模块同时引入了一个命名空间,其中包含模块中所有的名称和关联的对象,可以通过存储在没个模块中的__dict__来查看这个命名空间,换句话说,字典就是这个模块的命名空间。

如果想要引用给模块中的对象,要使用点符号将名称和模块名称关联,这实际上是要求将对象与该模块中的名称相关联。

当python启动解释器时,它将自动导入两个模块,即模块__main__和__built-ins__。__main__模块是默认的全局模块,所有新对象都存储在其中。可以通过函数globals来访问该命名空间的字典。子啊平python解释器中通过输入用户交互时,globals是有效的命名空间。

1.局部赋值规则

python中有一种称为“本地赋值”的规则非常有趣。如果在函数内的任何地方进行局部赋值,则该赋值只在当前活动的命名空间中创建名称。有时这将产生副作用,举例如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

>>> value= 27

>>>def func(param1,param2):

    for key,valin locals().items():

        print (key,val)

    value= value+ 1

>>> func(98765,43210)

param198765

param243210

Traceback (most recent call last):

  File "<pyshell#7>", line1,in <module>

    func(98765,43210)

  File "<pyshell#6>", line4,in func

    value= value+ 1

UnboundLocalError: local variable'value' referenced before assignment

>>>

首先通过赋值在全局命名空间中创建了变量value。也许你会认为,当函数值加1是会先在局部的命名空间中查找变量,无法找到时在全局命名空间中找到该名字。可以并不是这样。

python提出如下假设,如果在函数体内的任何地方对变量赋值,则python将名称添加到局部命名空间中。语句value=value+1对对象value进行赋值。python假设无论在何处发生赋值,value都是函数func局部命名空间的一部分。当python尝试把1跟value相加时,该value名称在局部命名空间中,但它没有关联值,所以python报错。

问题在于python何时决定使value出现在局部命名空间中。实际value出现在局部命名空间中发生在代码运行前,即,在python运行到函数定义之前。由于创建命名空间时,python会检查代码并填充局部命名空间。在python运行那行代码之前,就发现了对value的赋值,并把它添加到局部命名空间中,当函数执行时,python解释器认为value在局部命名空间中但没有值,所以会产生错误。

2.global语句

有一个方法可以解决上面的问题。如果在函数体内,使用global语句将变量声明为全局变量,那么python不会为该变量在命名空间中创建局部名称。

三、内置模块

遵循LEGB搜索规则,如果python不能在局部命名空间中找到某个名称,则会在全局命名空间中继续寻找,它寻找到的将是python的内置名称。

built-in模块和其他模块一样,都具有__dict__属性,这就是模块的命名空间

四、封闭式变量

“封闭式”的作用域规则适应于函数定义函数时,也就是说,在函数体内定义了一个新的函数。这个函数体内的函数是外函数的局部命名空间中的一部分,意味着只有在外函数执行期间才能够运行。完整的LEGB规则是先检查局部命名空间,之后是封闭在局部命名空间中的其他函数,之后是全局命名空间,在最后以内置命名空间结束。

http://www.ds6.com.cn/news/18185.html

相关文章:

  • flash 可以做网站吗武汉seo推广
  • 公章电子版在线制作淘宝优化关键词的步骤
  • 万网 网站建设方案书范文搜索引擎排名google
  • 怎么注销自己名下的营业执照seo优化实训总结
  • wordpress没有css样式上海网站seo
  • 马鞍山建设工程监督站建管处网站南京seo优化
  • 商城网站建设精英谷歌搜索引擎镜像
  • dede企业网站源码2021年搜索引擎排名
  • 国家市场监督管理总局网站怎么开通网站
  • 肃宁做网站神马搜索推广
  • 做网站建设需要什么资质百度com打开
  • 长沙长沙网站建设成人教育培训机构十大排名
  • 网站建设中英语如何说如何建立一个网站
  • 企业网站建设总结百度扫一扫入口
  • 昆山建设银行网站首页百度免费广告发布平台
  • 做网站图片和文字字体侵权百度新闻排行榜
  • 建网站一定要备案吗如何做一个网站
  • 如何给公司做网站google官网注册
  • 中铁建设集团有限公司领导名单网站seo推广多少钱
  • 郑州市建设委员会网站金水湾免费建站建站abc网站
  • 中国网站建设公司百强微商刚起步怎么找客源
  • 承接网站建设广告语线上推广宣传方式有哪些
  • 查询公司的网站备案信息查询网络违法犯罪举报网站
  • 网站开发分为前端和后台直通车推广怎么做
  • 响应式网站开发pdf深圳债务优化公司
  • 云优cms搜索引擎优化是指什么
  • 济南做网站知识seo云优化公司
  • 东莞网站推广流程最新军事报道
  • 一个人做b2b2c网站医院网络销售要做什么
  • 免费进b站2023一键优化清理