Python中命名空间和变量作用域是如何区分的?

2026-05-24 14:300阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计973个文字,预计阅读时间需要4分钟。

Python中命名空间和变量作用域是如何区分的?

pythonnamespace称为命名空间,是名称和对象之间的映射,通常以字典型的形式保存变量名及其所代表的变量值之间的映射关系。命名空间是变量名的集合,程序在解析某个变量名时,会查找这个映射关系。

namespace,称之为命名空间,是名称和对象之间的映射,通常以字典的形式保存变量名和其所指代的变量值之间的映射关系。

命名空间是变量名称的集合,程序在解析某个变量名称对应的值时,是通过命名空间来查找的,所以了解和掌握命名空间,有助于我们理解程序执行时的查找规则,写出符合预期的代码。

在同一个命名空间内,变量名称是唯一的,和字典的key一样,只有这样才可以保证唯一解析到正确的值,而不同命名空间是独立的,不同命名空间内变量名称的重复是允许的。

在python中,存在了3种命名空间,按照搜索的优先级,从高到低,排列如下

  • 局部命名空间,每个函数的变量,参数所构成的空间
  • 全局命名空间,模块级的变量,注意一个python脚本也是一个模块
  • 内置命名空间,python内置的常量,函数所构成的空间
  • 对于一个变量,首先从其所在函数的局部命名空间进行查找,如果没找到,就到上一级,全局命名空间进行查找,如果还没找到,就到内置命名空间进行查找,如果连内置命名空间都找不到的话,就会抛出变量名未定义的异常,即NameError。

    以上就是默认的命名空间查找规则,关于命名空间,还需要牢记一点,命名空间在定义时就已经生成。

    阅读全文

    本文共计973个文字,预计阅读时间需要4分钟。

    Python中命名空间和变量作用域是如何区分的?

    pythonnamespace称为命名空间,是名称和对象之间的映射,通常以字典型的形式保存变量名及其所代表的变量值之间的映射关系。命名空间是变量名的集合,程序在解析某个变量名时,会查找这个映射关系。

    namespace,称之为命名空间,是名称和对象之间的映射,通常以字典的形式保存变量名和其所指代的变量值之间的映射关系。

    命名空间是变量名称的集合,程序在解析某个变量名称对应的值时,是通过命名空间来查找的,所以了解和掌握命名空间,有助于我们理解程序执行时的查找规则,写出符合预期的代码。

    在同一个命名空间内,变量名称是唯一的,和字典的key一样,只有这样才可以保证唯一解析到正确的值,而不同命名空间是独立的,不同命名空间内变量名称的重复是允许的。

    在python中,存在了3种命名空间,按照搜索的优先级,从高到低,排列如下

  • 局部命名空间,每个函数的变量,参数所构成的空间
  • 全局命名空间,模块级的变量,注意一个python脚本也是一个模块
  • 内置命名空间,python内置的常量,函数所构成的空间
  • 对于一个变量,首先从其所在函数的局部命名空间进行查找,如果没找到,就到上一级,全局命名空间进行查找,如果还没找到,就到内置命名空间进行查找,如果连内置命名空间都找不到的话,就会抛出变量名未定义的异常,即NameError。

    以上就是默认的命名空间查找规则,关于命名空间,还需要牢记一点,命名空间在定义时就已经生成。

    阅读全文