当前位置:首页 > 编程教程 > Python技术文章 > Python中的命名空间和范围

深入理解Python中的命名空间和范围

  • 发布时间:
  • 作者:码农之家
  • 点击:160

这篇文章主要知识点是关于Python、命名空间、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Python编程
Python编程第四版
  • 类型:Python编程大小:264 MB格式:PDF作者:Mark Lutz
立即下载

Python中的命名空间和范围

在Python中,每个包、模块、类、函数和方法函数都拥有一个“名称空间”,其中解析了变量名称。下面本篇文章就来带大家认识一下Python中的命名空间和范围,希望对大家有所帮助。

 

Python中的命名空间和范围

什么是命名空间:

命名空间是一个系统,用于确保程序中的所有名称都是唯一的,并且可以在没有任何冲突的情况下使用。多个名称空间可以使用相同的名称并将其映射到不同的对象。【视频教程推荐:Python教程】

举个例子,计算机中的目录文件系统结构。不用说,一个人可以拥有多个目录,每个目录中都可以有一个具有相同名称的文件。但是,人们可以通过指定文件的绝对路径来定向文件。

Python中的命名空间是作为Python字典实现的,这意味着它是从名称(键)到对象(值)的映射。用户无需知道这一点就可以编写Python程序以及使用命名空间时。

命名空间的类型:

本地命名空间:此命名空间包含函数内的本地名称。调用函数时会创建此命名空间,它只会持续到函数返回。

全局命名空间:此命名空间包含您在项目中使用的各种导入模块的名称。它是在模块包含在项目中时创建的,并且一直持续到脚本结束。

内置命名空间:此命名空间包含内置函数和内置异常名称。

Python中的命名空间和范围

命名空间的生命周期:

命名空间的生命周期取决于对象的范围,如果对象的范围结束,则该命名空间的生命周期结束。因此,无法从外部命名空间访问内部命名空间的对象。

什么是范围?

命名空间可以帮助我们唯一地识别程序中的所有名称。但是,这并不意味着我们可以在任何地方使用变量名称。名称还有一个范围,用于定义程序中可以使用该名称而不使用任何前缀的部分。就像命名空间一样,程序中也有多个范围。

范围是指程序的一个区域,其中可以直接访问命名空间,即不使用命名空间前缀。换句话说:名称的范围是程序的一个区域,可以明确地使用该名称,例如在函数内部。

名称的名称空间与其范围相同。范围是静态定义的,但它们是动态使用的。

以下是程序执行期间可能存在的一些范围的列表:

● 本地范围:它是最里面的范围,包含当前函数中可用的本地名称列表。

● 所有封闭函数的范围:搜索名称从最近的封闭范围开始并向外移动。

● 包含当前模块中所有全局名称的模块级作用域。

● 包含所有内置名称列表的最外层作用域。最后搜索此范围以查找您引用的名称。

以上就是本篇文章的全部内容,希望能对大家的学习有所帮助。更多精彩内容大家可以关注码农之家相关教程栏目!!!

以上就是Python中的命名空间和范围的详细内容,更多请关注码农之家其它相关文章!

以上就是本次给大家分享的关于java的全部知识点内容总结,大家还可以在下方相关文章里找到相关文章进一步学习,感谢大家的阅读和支持。

Python 相关电子书
学习笔记
网友NO.306222

Python进阶_关于命名空间与作用域(详解)

写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的绑定相关性很大,可以结合另一篇介绍Python名字、对象及其绑定的文章。 1. 命名空间 1.1 什么是命名空间 Namespace命名空间,也称名字空间,是从名字到对象的映射。Python中,大部分的命名空间都是由字典来实现的,但是本文的不会涉及命名空间的实现。命名空间的一大作用是避免名字冲突: def fun1(): i = 1def fun2(): i = 2 同一个模块中的两个函数中,两个同名名字i之间绝没有任何关系,因为它们分属于不同明明空间。 1.2 命名空间的种类 常见的命名空间有: built-in名字集合,包括像abs()这样的函数,以及内置的异常名字等。通常,使用内置这个词表示这个命名空间-内置命名空间 模块全局名字集合,直接定义在模块中的名字,如类,函数,导入的其他模块等。通常,使用全局命名空间……

网友NO.384326

Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】

本文实例讲述了Python函数基础用法。分享给大家供大家参考,具体如下: 一、什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数。 特点: 1、约束函数的调用者必须按照Kye=value的形式传值。 2、约束函数的调用者必须用我们指定的Key名。 def auth(*args,name,pwd): print(name,pwd)auth(pwd='213',name='egon')def register(name,age): print(type(name),type(age))register(123,[1,2,3]) 以上输出: egon 213 class 'int' class 'list' 二、函数的嵌套 1、函数的嵌套调用:在函数内又调用了其他函数 def max2(x,y): if x y: return x else: return ydef max3(x,y,z): res1=max(x,y) res2=max(res1,z) return res2print(max3(88,99,100)) 以上输出: 100 2、函数的嵌套定义:在函数内又定义其他函数。 def func1(): print('from func1') def func2(): #func2=内存地址 print('from func2') print(func2) #function func1.locals.func2 at 0x0000024907A098C8 func2() func2() func2()fu……

网友NO.542758

python命名空间和作用域是什么?作用有哪些?

在这篇文章之中我们来了解一下python这门编程语言之中 命名空间和作用域 。在这一篇文章之中我们将会来了解一下 python命名空间, 以及 命名空间和作用域。 了解关于他们的一些知识。 命名空间和作用域: 变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。 一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。 每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。 Python 会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。 因此,如果要给函数内的全局变量赋值,必须使用 global 语句。 #!/usr/bin/python# -*- coding: UTF-8 -*- Money = 2000 def AddMoney()……

网友NO.554626

python中命名空间的三种方式介绍(附示例)

本篇文章给大家带来的内容是关于python中命名空间的三种方式介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 python中的命名空间分三种: 内置的命名空间,在启动解释器的时候自动加载进内存的各种名字所在的空间,比如print,input等不需要定义就可以使用的名字 全局命名空间,就是从上到下所有我们定义的变量名和函数名所在的空间,是在程序从上到下被执行的过程中加载进内存的。 局部命名空间,比如函数在执行时所开辟的空间,里面存放了函数内部定义的各种名字,随着函数执行结束 这个局部命名空间就消失了。 在局部命名空间可以使用全局和内置命名空间中的名字 在全局命名空间可以使用内置命名空间中的名字,但不能使用局部命名空间的。 在内置命名空间不能使用全局和局部的名字。 可以形象地……

<
1
>

Copyright 2018-2020 www.xz577.com 码农之家

版权投诉 / 书籍推广 / 赞助:520161757@qq.com