Python中单下划线和双下划线
双前下划线和双尾下划线
__foo__:一种约定,Python内部的名字,用来区别其他用户自定义的命名,以防冲突,就是例如__init__(),__del__(),__call__()这些特殊方法。
双前下划线
__foo:这个有真正的意义:解析器用_classname__foo来代替这个名字,以区别和其他类相同的命名,它无法直接像公有成员一样随便访问,通过对象名._类名__xxx这样的方式可以访问。
这是私有成员,只有类本身访问,子类也不行
单前下划线
_foo:一种约定,用来指定变量私有.程序员用来指定私有变量的一种方式.不能用from module import * 导入,其他方面和公有一样访问。
这是用来保护成员的,只有类对象和子类对象可以访问。可以用import module 来导入
单尾下划线
foo_:仅仅为了区别该名称和关键字。