专用下划线标识符
- _xxx,单下划线开头的变量,标明是一个受保护(protected)的变量,原则上不允许直接访问,但外部类还是可以访问到这个变量。这只是程序员之间的一个约定,用于警告说明这是一个私有变量,外部类不要去访问它。
- __xxx,双下划线开头的,表示的是私有类型(private)的变量。只能是允许这个类本身进行访问了, 连子类也不可以,用于命名一个类属性(类变量),调用时名字被改变(在类Student内部,__name变成_Student__name,如 self._Student__name)
双下划线开头的实例变量是不是一定不能从外部访问呢?其实也不是。仍然可以通过_Student__name来访问__name变量 - xxx,以双下划线开头,并且以双下划线结尾的,是内置变量,内置变量是可以直接访问的,不是 private 变量,如init,import或是file。所以,不要自己定义这类变量。
模块结构和布局
在运行时检测该模块是被导入还是被直接执行
如果模块是被导入,__name__ 的值为模块名字
如果模块是被直接执行, __name__ 的值为 ‘__main__’