龙空技术网

python命名空间基础知识

梯阅线条 257

前言:

眼前咱们对“python命名空间”可能比较看重,看官们都想要学习一些“python命名空间”的相关文章。那么小编同时在网上搜集了一些对于“python命名空间””的相关内容,希望小伙伴们能喜欢,大家快快来了解一下吧!

1.1 映射

A和B都是非空集合,存在对应关系f,使得A中的任意一个元素a,在B中都有唯一元素b与之对应,则f称为从A到B的映射,写作f:A->B。

b称为a在映射f下的像,记作:b=f(a)。

a称为b关于映射f的原像。

集合A中所有元素的像(所有b)的集合称为映射f的值域,记作f(A)。

1.2 python命名空间

python的命名空间(namespace)是指从名称到对象的映射。

对象=f(名称),f为命名空间。

任何一个名称,通过命名空间f,都能找到唯一一个对象与之对应。

python变量名的创建、修改和查找都是在命名空间进行的。

1.3 python三种命名空间

python有三种命名空间:

序号

命名空间

描述

1

内置命名空间(built-in name)

python语言内置名称,比如函数名称print、abs等

2

全局命名空间(global-name)

模块级变量、函数、类、导入的模块及其变量

3

局部命名空间(local-name)

函数(或方法)中的变量,函数入参,函数返回值,

命名空间查找顺序:局部>全局>内置命名空间。找不到则报NameError异常。

命名空间加载顺序:内置>全局>局部(函数调用时生成)。

命名空间销毁顺序:局部>全局>内置命名空间。

1.4 locals和globals()

locals()当前函数局部命名空间。

globals()当前模块命名空间。

示例

>>> def funct(a=2):    b='梯阅线条'    print(locals())    return a*b>>> funct(){'a': 2, 'b': '梯阅线条'}'梯阅线条梯阅线条'>>> globals(){'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'funct': <function funct at 0x00E41DB0>}

本文首发微信公众号:梯阅线条

更多内容参考python知识分享或软件测试开发目录。

标签: #python命名空间 #python怎么改名字