#!/usr/bin/python
# # -*- coding: UTF-8 -*-
class Attribute:
public = 0
__private = 0
def variable(self):
self.public += 1
self.__private += 1
print(self.__private)
c = Attribute()
c.variable()
c.variable()
print(c.public)
# print(c.__private) #使用错误
print(c._Attribute__private)
如上代码块:
__private:两个下划线开头,声明该属性为私有,不能在类地外部被使用或直接访问。在类内部的方法中使用时 self._Attribute__private)。
单下划线、双下划线、头尾双下划线说明:
- __foo__定义的是特殊方法,一般是系统定义名字 ,类似 init() 之类的。
- _foo: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
- __foo: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。