Re: duda acerca de self como argumento de métodos

Medardo Rodriguez med.swl en gmail.com
Mar Mayo 27 15:56:42 CEST 2008


2008/5/27 Milton Galo Patricio Inostroza Aguilera <minoztro en gmail.com>:
> La otra duda es que como a través de test accedo al atributo a?...es
> decir hacer test.a?.....

«test» es una clase en tu ejemplo. En la teoría de POO (o más general,
de análisis de dominio) las clases se pueden ver también como
objetos[1]. Los objetos tienen atributos.
Veamos un ejemplo más amplio para poder responder mejor:
<code language="python">
class test(object):
    attr = 'Esto es un attributo de clase'

    def __init__(self, attr):
        self.attr = attr

    def __str__(self):
        return str(self.attr)


objs = [test(2*i+1) for i in xrange(10)]


print test.attr

for obj in objs:
    print obj
</code>

«test.atrr» es un atributo del objeto «test», que es a su vez la
clase. «objs[0].attr» es un atributo de otro objeto que es una de las
instancias de «test».
Por supuesto que las instancias pueden tener un atributo de nombre
«attr» y la clase de éstas no tenerlo.

> Y la otra duda {ya comenzando a ser off-topic} como puedo hacer un
> del(test.a) ? de la instancia se puede hacer de lo más bien, pero no
> he encontrado como eliminar un atributo de la clase.

No lo puedes hacer en la clase, simplemente porque en tu ejemplo ésta,
en su faceta de objeto, no tiene tal atributo. i lo tuviera, pudieras
borrarlo sin problemas.

Saludos

[1] Lo que establece el concepto de relaciones de metaclases. Python
soporta este concepto.
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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