单下划线和双下划线的含义?

单下划线

在一个类中的方法或属性,用单下划线开头,就是告诉别的程序这个属性或方法是私有的。

引自 PEP-8:

单下划线: “内部使用” 的弱指示器。比如,from M import * 将不会引进用单下划线开头的对象。

双下划线

引自 Python 文档:

任何 __spam 形式(至少两个下划线开头,最多一个下划线结尾)都是代替 _classname__spam,其中 classname 是当前类的名字。

约定

__foo__:Python 内部的名字,用来区别其他用户自定义的命名,以防冲突

_foo:用来指定变量私有

__foo:解析器将会用 _classname__foo 来代替这个名字,以区别和其他类相同的命名

Last updated