更新时间:2024-04-24 来源:黑马程序员 浏览量:
在Python中,命名空间(Namespace)是一种用于存储和访问变量名称的系统,它们有助于避免名称冲突并组织代码结构。命名空间是一个映射(mapping),它将变量名(或属性名)映射到相应的对象上。
Python中有以下几种类型的命名空间:
1.内置命名空间(Built-in Namespace):
这是Python解释器启动时自动创建的命名空间,其中包含了内置的函数和对象,如print()函数、list类型等。它们可以在任何地方直接访问。
2.全局命名空间(Global Namespace):
在模块级别定义的变量所在的命名空间称为全局命名空间。每个Python模块都有自己的全局命名空间,存储了在该模块内部定义的变量、函数和类等。全局命名空间在模块导入时创建,在解释器退出时销毁。
3.局部命名空间(Local Namespace):
局部命名空间包含在函数调用时创建的命名空间中。这些命名空间仅在函数执行期间存在,存储了函数内部定义的变量、参数和临时对象等。当函数执行结束后,局部命名空间也会被销毁。
4.嵌套命名空间(Enclosing Namespace):
如果在一个函数内部嵌套了其他函数,内部函数的命名空间就可以访问外部函数的命名空间,但反之则不成立。这种嵌套的命名空间关系称为嵌套命名空间。
5.类命名空间(Class Namespace):
类命名空间存储了类中定义的属性和方法。每个类都有自己的命名空间,用于管理类的属性和方法。当通过类来访问属性或方法时,实际上是在类的命名空间中进行查找。
Python中的命名空间是一个树状结构,具有层次性。在名称解析时,Python解释器会根据 LEGB 规则(即:Local -> Enclosing -> Global -> Built-in)依次查找相应的命名空间,直到找到为止。这种规则确保了在不同作用域中定义的同名变量不会发生冲突,同时也使得代码更易读和维护。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业当天offer率91%,薪资1W+占比54.2%,班级均薪12k+
2025-09-19