python中的双下划线__是啥意思? [复制]

Posted

技术标签:

【中文标题】python中的双下划线__是啥意思? [复制]【英文标题】:what does the double underscore __ mean in python? [duplicate]python中的双下划线__是什么意思? [复制] 【发布时间】:2013-10-13 13:22:52 【问题描述】:

双下划线在python中表示什么?我记得读过一个教程,说它与隐藏变量有关,但我觉得还有更多内容,而且我不断看到带有双下划线的代码示例,我不明白它的含义。

【问题讨论】:

取决于使用双下划线的位置。 (__init__?__name__?) 我严格要求名称前的双下划线,而不是前后。 @donnaloia 那确实是重复的。 人们是否也将其标记为重复项?这似乎不公平。 不是我。事实上,我赞成这个问题:) 【参考方案1】:

来自PEP 8:

__double_leading_underscore:命名类属性时,调用名称修改(在类 FooBar 中,__boo 变为 _FooBar__boo;见下文)。

__double_leading_and_trailing_underscore__:存在于用户控制的命名空间中的“神奇”对象或属性。例如。 __init____import____file__。永远不要发明这样的名字;仅按文档说明使用。

【讨论】:

很好的回复。但这解释得更好(也可以参考 PEP 8 风格指南):The meaning of a single- and a double-underscore before an object name in Python @paulsm4,奇怪的是,我已经对这个问题及其答案投了很多票。随着 SO 的增长,记住其中包含的所有有用信息变得越来越困难。

以上是关于python中的双下划线__是啥意思? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Python 中的函数的双下划线“__”

python类中的双下划线方法

__init__(self) 在 Python 中是啥意思? [复制]

python文件名的下划线前缀是啥?

_servicename_ 中的下划线在 AngularJS 测试中是啥意思?

在 Python 格式(f-string)字符串中,!r 是啥意思? [复制]