当前位置:  开发笔记 > 编程语言 > 正文

何时在Python中使用一个或两个下划线

如何解决《何时在Python中使用一个或两个下划线》经验,为你挑选了1个好方法。

好吧我想我已经理解在Python中使用一个和两个标题下划线了.

如果我错了,纠正我,

    在一个下划线的情况下,下划线阻止from X import *语句导入此类变量.

    在两个下划线的情况下,变量的名称前面加上它所属的类的名称,以允许更高级别的"私有性".

我现在的问题是:为什么不只使用两个下划线?在哪种情况下,两个下划线优先(或需要)一个下划线?



1> bruno desthu..:

简短回答:使用单个前导下划线,除非你有一个非常令人信服的理由不这样做(甚至再三思).

答案很长:

一个下划线表示"这是一个实现细节"(属性,方法,函数,等等),并且是Java中"受保护"的Python等价物.这是您应该用于不属于您的类/模块/包公共API的名称的内容.这只是一个命名约定(主要是 - 明星导入会忽略它们,但你不会在其他任何地方进行明星导入,而不是在你的Python shell中吗?)所以它不会阻止任何人访问这个名字,但他们'如果有任何问题,请自行解决(请将此视为"保密无效,如果未密封"的提及).

两个下划线触发名称修改机制.很少有正当理由使用它 - 实际上只有我能想到的(并且记录在案):保护名称不会在复杂框架的内部环境中被意外覆盖.作为一个例子,在整个django代码库中可能有大约六个或更少这个命名方案的实例(主要在django.utils.functional包中).

就我而言,我必须在15年以上使用这个功能三次,即便如此,我仍然不确定我是否真的需要它.

推荐阅读
k78283381
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有