Python中实例前单双下划线的区别
单下划线
在一个类中的方法或属性用单下划线开头就是告诉别的程序这个属性或方法是私有的。然而对于这个名字来说并没有什么特别的。
双下划线
任何__spam形式(至少两个下划线开头,至多一个下划线结尾)都是代替_classname__spam,其中classname是当前类的名字。This mangling is done without regard to the syntactic position of the identifier。所以它能用来定义私有类的实例和类变量,方法,在全局中的变量,甚至是实例中的变量。可以区别不同类的实例。
总结:
__foo__:一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突。
_foo:一种约定,用来指定变量私有。程序员用来指定私有变量的一种方式。
__foo:这个有真正的意义:解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名。
在Python中没有其他形式的下划线了。
这种约定方式和类,变量,全局变量等没有区别。
相关推荐
higher0 2020-10-24
doubinning 2020-09-22
tengyuan 2020-04-17
liangzuojiayi 2020-04-14
cuterabbitbaby 2019-12-29
jacktangj 2019-12-16
Kwong 2019-12-01
mingrixing 2019-08-29
wklken的笔记 2019-10-26
hlfsunshine 2018-01-05
JohnnyPig 2018-03-11
云端漂移 2019-06-09
Doulvme 2006-09-24
xuMelon 2019-07-01
SZStudy 2015-01-05
走向WEB开发 2018-01-05
微麦PHP 2019-06-27