视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
Python中实例前单双下划线的区别
2020-11-27 14:09:47 责编:小采
文档


单下划线

在一个类中的方法或属性用单下划线开头就是告诉别的程序这个属性或方法是私有的。然而对于这个名字来说并没有什么特别的。

双下划线

任何__spam形式(至少两个下划线开头,至多一个下划线结尾)都是代替_classname__spam,其中classname是当前类的名字。This mangling is done without regard to the syntactic position of the identifier。所以它能用来定义私有类的实例和类变量,方法,在全局中的变量,甚至是实例中的变量。可以区别不同类的实例。

总结:

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

_foo:一种约定,用来指定变量私有。程序员用来指定私有变量的一种方式。

__foo:这个有真正的意义:解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名。

在Python中没有其他形式的下划线了。

这种约定方式和类,变量,全局变量等没有区别。

下载本文
显示全文
专题