光明节以庆祝八个夜晚而闻名。然而,光明节烛台有九根蜡烛:八根普通蜡烛和第九根总是偏移的蜡烛。它被称为 shamash 或 shamos,大致翻译为“仆人”或“看门人”。
Shamos 是点燃所有其他蜡烛的蜡烛:它是唯一可以使用的火焰,而不仅仅是观看。当我们结束关于 Python 之禅的系列时,我看到了命名空间如何提供类似的服务。
Python 中的命名空间
Python 在所有地方都使用命名空间。虽然简单,但它们是稀疏数据结构——这通常是实现目标的最佳方式。
命名空间 是从名称到对象的映射。
模块是命名空间。这意味着正确预测模块语义通常只需要熟悉 Python 命名空间的工作方式。类是命名空间。对象是命名空间。函数可以访问它们的本地命名空间、它们的父命名空间和全局命名空间。
简单的模型,其中 . 运算符访问一个对象,而该对象反过来通常(但不总是)会进行某种字典查找,这使得 Python 难以优化,但易于解释。
实际上,一些第三方模块采用了这个指导原则并加以应用。例如, variants 包将函数变成“相关功能”的命名空间。这是一个很好的例子,说明 Python 之禅 如何激发新的抽象。
结论
感谢您加入我这个受光明节启发的 我最喜欢的语言 探索之旅。 继续前进,冥想禅宗,直到达到开悟。
评论已关闭。