Python/Conceitos básicos/Encapsulamento
Aspeto
Encapsulamento é a proteção dos atributos ou métodos de uma classe, em Python existem somente o public e o private e eles são definidos no próprio nome do atributo ou método.
Atributos ou métodos iniciados por no máximo dois sublinhados e terminados por um sublinhado são privados e todas as outras formas são públicas.
class A:
a = 1 # atributo publico
__b = 2 # atributo privado a class A
class B(A):
__c = 3 # atributo privado a B
def __init__(self):
print self.a
print self.__c
a = A()
print a.a # imprime 1
b = B()
print b.__b # Erro, pois __b é privado a classe A.
print b.__c # Erro, __c é um atributo privado, somente chamado pela classe.
print b._B__c # Imprime __c = 3, muito pouco utilizada, mas existe.