名称空间

shicongcong0910 shicongcong0910     2023-03-09     648

关键词:

名称空间:
  内置 全局 局部

  内置命名空间 存放python解释器为我们提供的名字list str tuple之类的
  全局命名空间 直接在py文件中,函数外部声明的变量都是属于命名空间
  局部命名空间 在函数中声明的变量

取值顺序:
1.局部命名空间
2.全局命名空间
3.内置命名空间

技术图片

 


加载顺序:
1.内置空间
2.全局空间
3.局部空间
作用域:就是作用的范围,按照生效范围来分为全局作用域和局部作用域
全局作用域:包含命名空间和全局命名空间 在整个文件的任何位置都可以使用(遵循从上到下逐步执行)
局部作用域:在函数内部可以使用
globals() 查看全局变量
locals() 查看局部变量
a = 10
def func():
    a = 40
    b = 20
    def abc():
        print("哈哈")
        print(a, b)     # 这里使用的是局部作用域
        print(globals())    # 打印全局作用域中的内容
        print(locals())     # 打印局部作用域中的内容
    abc()
func()
结果:

哈哈
40 20
‘__name__‘: ‘__main__‘, ‘__doc__‘: None, ‘__package__‘: None, ‘__loader__‘: <_frozen_importlib_external.SourceFileLoader object at 0x00000000006B5A20>, ‘__spec__‘: None, ‘__annotations__‘: , ‘__builtins__‘: <module ‘builtins‘ (built-in)>, ‘__file__‘: ‘C:/Users/Administrator/PycharmProjects/untitled/函数复习.py‘, ‘__cached__‘: None, ‘a‘: 10, ‘func‘: <function func at 0x00000000003B1E18>
‘b‘: 20, ‘a‘: 40

  

 

修改全局变量:

a = 10
def func():
    def abc():
        global a #声明修改全局变量a
        a = 22  #对a进行修改
        print(a)
    abc()
func()
print(a)
结果:
22
22

global修改全局变量 但是只能在局部修改 在全局会报错

a = 10
def func():
    a = 22
    def abc():
        nonlocal a  #声明父类离得最近的非全局变量a
        a =66    #对a进行修改
        print(a)
    abc()
    print(a)
func()
print(a)
结果:
66
66
10

nolocal修改父类离得最近的非全局的变量

























名称空间

名称空间又名namespace,名称空间就是存放变量名与变量值绑定关系的地方名称空间共3种,分别如下locals:是函数内的名称空间,包括局部变量和形参(locals打印当前所在名称空间里的所有局部变量)globals:全局变量,函数定义所在... 查看详情

名称空间与作用域

#_*_coding:utf-8_*_#名称空间#1.名称空间(Namespaces):指的是在内存空间中存放名字与值内存地址绑定关系#2.名称空间分为三大类#1、python解释器先启动,因而首先加载的是:内置名称空间#2、执行test.py文件,然后以文件为基础,加... 查看详情

九名称空间作用域

名称空间  就是存放名字的一个地方a=1开辟内存,存入1,a指向1的内存地址a存放在名称空间,存的是a和1的绑定关系 三种名称空间:  一、内置名称空间python自带的都存放在这,解释器启动后就加载生成该名称空间存放内... 查看详情

作用域和名称空间

名称空间:用来存放名字(变量,函数名,类名,引入的模块名)的1.全局名称空间:我们在py文件中自己写的变量,函数.....2.内置名称空间:我们python解释器提供好的一些内置内容(print,input....)3.局部名称空间:在我们执行函数的时候.会产生... 查看详情

闭包函数以及装饰器

三种名称空间内置名称空间:随着python解释器的启动而产生全局名称空间:文件级别定义的名字会放入该空间局部名称空间:调用函数时会产生局部名称空间,只在函数调用时临时有效作用域全局作用域:内置名称空间,全局名... 查看详情

名称空间与作用域

一名称空间相关1.名称空间Namespaces:指的就是存放名字与值内存地址绑定关系的地方(内存空间)2.名称空间分为三大类内置名称空间:存放的是python解释器自带的名字  产生:python解释器的启动则产生  销毁:python解释器关... 查看详情

php命名空间的三种引用方式:非限定名称限定名称完全限定名称(代码片段)

阅读目录1、非限定名称:省略空间名称,使用默认或当前的命名空间2、限定名称:前面必须添加命名空间才可访问,通常用于子空间3、完全限定名称:类似绝对目录,从全局空间的反斜线开始\\1、非限定名称:省略空间名称,... 查看详情

php命名空间的三种引用方式:非限定名称限定名称完全限定名称(代码片段)

阅读目录1、非限定名称:省略空间名称,使用默认或当前的命名空间2、限定名称:前面必须添加命名空间才可访问,通常用于子空间3、完全限定名称:类似绝对目录,从全局空间的反斜线开始\\1、非限定名称:省略空间名称,... 查看详情

名称空间和作用域(代码片段)

一名称空间一定义名称空间:存放名字的地方,三种名称空间(x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的地方)二名称空间的加载顺序pythontest.py#1、python解释器先启动,因而首先加载的... 查看详情

07-03名称空间与作用域(代码片段)

[TOC]一名称空间名称空间即存放名字与对象映射/绑定关系的地方。对于x=3,Python会申请内存空间存放对象3,然后将名字x与3的绑定关系存放于名称空间中,delx表示清除该绑定关系。?在程序执行期间最多会存在三种名称空间插图... 查看详情

错误“名称空间'System.Web'中不存在类型或名称空间名称'Script'”背后是不是有解释

】错误“名称空间\\\'System.Web\\\'中不存在类型或名称空间名称\\\'Script\\\'”背后是不是有解释【英文标题】:Isthereanexplanationbehindtheerror"Thetypeornamespacename\'Script\'doesnotexistinthenamespace\'System.Web\'"错误“名称空间\'System.Web\'中... 查看详情

命名空间作用域

三者的加载顺序:内置名称空间->全局名称空间->局部名称空间取值:局部名称空间->全局名称空间->内置名称空间命名空间  全局命名空间:创建的存储“变量名与值的关系”的空间叫做全局命名空间  局部命... 查看详情

xml名称空间详解(代码片段)

...:https://www.cnblogs.com/xugang/archive/2010/02/26/1674333.htmlXML中的名称空间又被叫做命名空间。名称空间的作用?为了解决不同领域的XML词汇的同名冲突和区分识别。(参考底下的示例)注意:名称空间只存在逻辑意义,无法真正实现对U... 查看详情

函数的作用域和名称空间

...成型在函数定义阶段,与函数调用无关全局作用域:内置名称空间与全局名称空间的名字属于全局范围,      在整个文件的任意位置都能被引用,全局有效局部作用域:局部名称空间的名字属于局部范围,      ... 查看详情

如何在 XSLT 输出中控制名称空间前缀(特别是默认名称空间)?

】如何在XSLT输出中控制名称空间前缀(特别是默认名称空间)?【英文标题】:HowdoIcontrolnamespaceprefixes(specificallythedefaultnamespace)inXSLToutput?【发布时间】:2021-03-2203:11:10【问题描述】:在XSLT中有什么方法可以控制输出元素中名称... 查看详情

函数-名称空间(代码片段)

  名称空间分类:全局名称空间,局部名称空间,内置名称空间。  我们首先回忆一下Python代码运行的时候遇到函数是怎么做的。    从Python解释器开始执行之后,就在内存中开辟里一个空间,每当遇... 查看详情

名称空间和作用域(代码片段)

名称空间定义:内存有一块内存存储变量名与变量间的绑定关系的空间,存放名字(变量名/函数名)1.内置名称空间内置名称空间是python解释器独有的,存放python解释器自带的名字,如int,float,len当Python解释器启动的时候python自动开辟内... 查看详情

错误 CS0234 名称空间“MvvmCross”中不存在类型或名称空间名称“Platforms”(您是不是缺少程序集引用?)

】错误CS0234名称空间“MvvmCross”中不存在类型或名称空间名称“Platforms”(您是不是缺少程序集引用?)【英文标题】:ErrorCS0234Thetypeornamespacename\'Platforms\'doesnotexistinthenamespace\'MvvmCross\'(areyoumissinganassemblyreference?)错误CS0234名称空... 查看详情