gpt4 book ai didi

python - 什么是用户控制的命名空间?

转载 作者:太空宇宙 更新时间:2023-11-04 10:36:47 25 4
gpt4 key购买 nike

引用Python PEP8 :

__double_leading_and_trailing_underscore__ : "magic" objects or attributes that live in user-controlled namespaces. E.g. __init__, __import__ or __file__. Never invent such names; only use them as documented.

我浏览了许多与在 Python 中使用下划线相关的问题,我想我已经理解了其中大部分的答案(比如 private 属性,name mangling , ETC。)。我想我也理解了前面提到的双前导和尾随下划线的使用。我想这是为了保护像 __init__ 这样的函数,它类似于 C++ 和 Java 等语言中的构造函数。

但是它不应该被称为community-controlled namespaces(我所说的社区是指 Python 社区)吗?作者说 user-controlled namespaces 是什么意思?事实上,其意图似乎恰恰相反:用户不应(通常)玩弄这些 namespace 。

最佳答案

用户控制的命名空间是指使用 Python 编程的用户控制存在的名称及其具有的值的命名空间。换句话说,基本上是用户创建的 API。这意味着您不应设计依赖于您编写的新 __doubleunderscore_names__ 的 API。

这里的“命名空间”不是指命名约定,而是指实际的编程范围。例如,每个函数都有一个用于其局部变量的局部 namespace ;模块的全局变量有一个全局命名空间;等等。用户绝对会使用这些 namespace ——您将创建自己的变量、类、函数等。这意味着您不应该编造看起来很神奇的新名称并将它们放入您的 namespace 中。

关于python - 什么是用户控制的命名空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22889374/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com