在许多资源中,我发现“作用域”和“命名空间”可互换使用,这似乎有点令人困惑,因为它们的含义不同。
- 范围定义了可使用名称的代码区域。
- LEGB规则定义了查找名称的方式。
- 命名空间是您查找名称的地方。
然后我读到:
- “名称根据其分配的位置绑定到名称空间...”(我认为这是处理词法作用域中的作用域的方法)。
- “功能添加一个额外的命名空间层,你的程序” [ 参考。](他们不添加额外的本地范围吗?)
- “在函数定义内分配的所有名称都放在本地范围(与函数调用关联的名称空间)中。”
- “全局作用域-即一个命名空间,在该命名空间中存在(分配)在模块文件顶层的变量。”
*所有报价均来自学习python第5版ch17
Python中的名称空间是实现范围的方式吗?它们是一样的吗?谁能启发我?