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

Jose Caballero jcaballero.hep en gmail.com
Mar Mayo 27 16:52:52 CEST 2008


Hola, espero que este link te ayude un poco

http://effbot.org/pyfaq/why-must-self-be-used-explicitly-in-method-definitions-and-calls.htm

Saludos,
Jose



El día 27 de mayo de 2008 10:38, Milton Galo Patricio Inostroza Aguilera <
minoztro en gmail.com> escribió:

> El día 27 de mayo de 2008 9:21, Milton Galo Patricio Inostroza
> Aguilera <minoztro en gmail.com> escribió:
> > estimados:
> >
> >  Ayer durante una presentación en la Universidad me preguntaron por
> > qué siempre tiene que ir como primer argumento de un método el
> > argumento self, en realidad nunca me lo había cuestionado :-S....bueno
> > en realidad es entendible que debe existir una referencia a la
> > instancia pero por qué esto debe aparecer "explicitamente" en el
> > código que el programador escribe y por qué no simplemente ocultarlo y
> > usar un atributo especial como this?...Yo a priori pienso que es por
> > facilidad de usabilidad y siempre es mejor "visible" que "oculto y
> > mistico".
>
> bueno específicamente me dijeron esto:
>
> """
> la pregunta es saber porque tomaron la decision de dejar el self como
> parametro explicito. Modula-3 es un lenguaje de los 80, que viene de
> Modula (fin de los 70s), sucesor de Pascal. O sea, nada transcendental
> en el reino de los lenguajes OO (comparar con Smalltalk 72/76/80).
>
> en todo lenguaje OO que sirve hoy en dia, el self es un parametro
> implicito. No es necesario ponerlo como parametro explicito,
> simplemente se puede usar this (Java) o self (Smalltalk) dentro del
> cuerpo de un metodo.
> """
>
> >
> > Acabo de hacer un código de juguete, es el siguiente:
> >
> >>>> class test(object):
> > ...     def __init__(s):
> > ...             s.a = 10
> > ...
> >>>> testObject = test()
> >>>> testObject.a
> > 10
> >
> > Sinceramente a mi no me molesta indicar el atributo self ya que
> > encuentro que es más fácil leer el código, además que en python puedes
> > definir atributos de la clase en cualquier parte del cuerpo de la
> > clase.
> >
> > La otra duda es que como a través de test accedo al atributo a?...es
> > decir hacer test.a?.....
> >
> > 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.
> >
> > Gracias por vuestras respuestas,
> >
> > --
> > Milton Inostroza Aguilera
> >
>
>
>
> --
> Milton Inostroza Aguilera
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
_______________________________________________
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