命名空间是 Python 之禅的沙玛什蜡烛

这是关于 Python 之禅的特别系列的一部分,重点关注一个额外的原则:命名空间。
77 位读者喜欢这篇文章。
Why and how to handle exceptions in Python Flask

图片来自 Unsplash.com,知识共享零许可 

光明节以庆祝八个夜晚而闻名。然而,光明节烛台有九根蜡烛:八根普通蜡烛和第九根总是偏移的蜡烛。它被称为 shamash 或 shamos,大致翻译为“仆人”或“看门人”。

Shamos 是点燃所有其他蜡烛的蜡烛:它是唯一可以使用的火焰,而不仅仅是观看。当我们结束关于 Python 之禅的系列时,我看到了命名空间如何提供类似的服务。

Python 中的命名空间

Python 在所有地方都使用命名空间。虽然简单,但它们是稀疏数据结构——这通常是实现目标的最佳方式。

命名空间 是从名称到对象的映射。

— Python.org

模块是命名空间。这意味着正确预测模块语义通常只需要熟悉 Python 命名空间的工作方式。类是命名空间。对象是命名空间。函数可以访问它们的本地命名空间、它们的父命名空间和全局命名空间。

简单的模型,其中 . 运算符访问一个对象,而该对象反过来通常(但不总是)会进行某种字典查找,这使得 Python 难以优化,但易于解释。

实际上,一些第三方模块采用了这个指导原则并加以应用。例如, variants 包将函数变成“相关功能”的命名空间。这是一个很好的例子,说明 Python 之禅 如何激发新的抽象。

结论

感谢您加入我这个受光明节启发的 我最喜欢的语言 探索之旅。 继续前进,冥想禅宗,直到达到开悟。

接下来阅读什么
标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
Moshe 自 1998 年以来一直参与 Linux 社区,帮助举办 Linux“安装派对”。他自 1999 年以来一直编写 Python 程序,并为核心 Python 解释器做出了贡献。Moshe 自从这些术语出现之前就一直是 DevOps/SRE,他非常关心软件可靠性、构建可重现性以及其他此类事情。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.