本节内容一览图:
每一个类的成员都有两种形式:
- 公有成员,在任何地方都能访问
- 私有成员,只能在类的内部才能访问
1.1、私有成员和公有成员的定义不同:
私有成员命名时,前两个字符是下划线。(特殊成员除外,例如:__init__、__call__、__dict__等)
前面提到过 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问
例如:
class C: def __init__(self): self.name = '公有字段' self.__foo = "私有字段"
1.2、私有成员和公有成员的访问限制不同
静态字段:
- 公有静态字段:类可以访问;类内部可以访问;派生类中可以访问
- 私有静态字段:仅类内部可以访问;
class C:
name = "公有静态字段"
def func(self):
print C.name
class D(C):
def show(self):
print C.name
C.name # 类访问
obj = C()
obj.func() # 类内部可以访问
obj_son = D()
obj_son.show() # 派生类中可以访问