Atributos privados de clase

Daniel Ripollés Climent ripolles en aditel.org
Mar Feb 25 13:31:12 CET 2003


On Tue, Feb 25, 2003 at 10:14:18AM +0100, Gonzalez Suarez, Daniel wrote:

> - ¿Cómo puedo tener atributos privados?
> - ¿Cómo desde una subclase me refiero a métodos o atributos de la
> superclase?

Es mi primera respuesta a la lista...espero que sea bastante clara.
Mirate este modulito de prueba:

# fichero probandoclases.py

class A:
    def __init__(self):
        self.lala = "este es publico de A"
        self.__otro = "este es privado de A"
    def imprime(self):
        print self.__otro
    def blabla(self):
        print "Un saludo desde la clase A"

class B(A):
    def __init__(self):
        A.__init__(self)
        self.otromas = "esto es de la clase B"
    def imprime(self):
        print self.lala
        try:
            print self.__otro
        except AttributeError:
            print "B no puede acceder a __otro"
        print self.otromas

## fin del fichero

Ahora abro un shell de python:

Python 2.2.1 (#1, Jul 29 2002, 23:15:49) 
[GCC 2.95.4 20011002 (Debian prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from probandoclases import *
>>> a=A()
>>> a.imprime()
este es privado de A
>>> b=B()
>>> b.imprime()
este es publico de A
B no puede acceder a __otro
esto es de la clase B
>>> b.blabla()
Un saludo desde la clase A
>>> 

Espero que sea lo bastante claro como para servir de ayuda

-- 
Daniel Ripolles ( Eru )
print max([(L.count(j),j,a.append(j)) for j in L if not j in a])[1]




Más información sobre la lista de distribución Python-es