[pyar] Llamar a un método en una clase. No funciona.

Santiago Basulto santiago.basulto en gmail.com
Jue Nov 8 21:45:01 ART 2012


Dato anecdótico, lo que plantea Fisa se llama "Uniform access
principle", y fue introducido por Bertrand Meyer en el lenguaje Eiffel
(Angel seguramente tiene algún que otro dato de Bertrand ;) )

La idea es tener la misma interfaz para acceder a los valores de un
objeto. Ya sea para el acceso, para la asignación, etc.

Es una muy buena práctica de OOP.

2012/11/8 fisa <fisadev en gmail.com>:
> El día 8 de noviembre de 2012 21:34, fisa <fisadev en gmail.com> escribió:
>> Agrego a lo que ya te dijeron:
>>
>> No es necesario que definas getters para los atributos si solamente
>> vas a devolver el valor del atributo.
>> Eso es costumbre por ejemplo en java, pero en python no lo es. Y para
>> los casos donde realmente se necesitan getters y setters, hay algo que
>> lo resuelve de forma mucho más linda: @property
>>
>> En pocas palabras:
>>
>> vos estás haciendo
>>
>> class Atom(object):
>>     def __init__(self, position, ..):
>>         self.position = position
>>         ...
>>     def position(self):
>>         return self.position
>>
>> para poder despues hacer cosas como
>>
>> hAtom2 = Atom(...)
>> print hAtom2.position()
>>
>> Más allá de que no anda porque se pisan entre el atributo y el método
>> por tener el mismo nombre, igual podrías *no* tener ningún método para
>> devolver la position, y hacer solo:
>>
>> class Atom(object):
>>     def __init__(self, position, ..):
>>         self.position = position
>>
>> hAtom2 = Atom(...)
>> print hAtom2.position  # fijate que no es un metodo, uso directamente
>> el atributo.
>>
>> Eso es lo normal en python.
>>
>>
>> El día 8 de noviembre de 2012 21:03, Carlos <scire1905 en gmail.com> escribió:
>>> Angel Java Lopez <ajlopez2000 en ...> writes:
>>>
>>>>
>>>>
>>>> Hola gente!No se los demas... Carlos, pero no entendi...
>>>>
>>>> Cual es el problema?
>>>>
>>>> El codigo de abajo no lo probe en Python, pero lo probe en mi proyecto:
>>>>
>>> https://github.com/ajlopez/PythonSharp/blob/master/Src/PythonSharp.Tests/Example
>>> s/atoms.py
>>>> y anduvo sin mayor drama
>>>>
>>>> Hay enlace al tutorial?On Thu, Nov 8, 2012 at 8:36 PM, Carlos Giménez
>>> <scire1905 en gmail.com> wrote:Hola a todos,
>>>> actualmente estoy tratando de entrar al mundo de Python. En este momento estoy
>>> siguiendo un tutorial y en un punto desarrollo un script pero no funciona. Lo
>>> tomé exactamente como figura en el tuto.
>>>>
>>>>
>>>>
>>>> #!/usr/bin/env python
>>>>
>>>> class Atom (object):
>>>>
>>>>   "A class to represent a single atom"
>>>>   def __init__(self, symbol, mass, position):
>>>>
>>>>     self.symbol = symbol
>>>>     self.mass = mass
>>>>     self.position = position
>>>>
>>>>   def symbol(self):
>>>>     return self.symbol
>>>>
>>>>   def mass(self):
>>>>
>>>>     return self.mass
>>>>
>>>>   def position(self):
>>>>     return self.position
>>>>
>>>> oAtom = Atom('O', 15.9994, [0.0, 0.0, 0.0])
>>>> hAtom1 = Atom('H', 1.0079, [0.0, 1.0, 0.0])
>>>>
>>>> hAtom2 = Atom('H', 1.0079, [1.0, 0.0, 0.0])
>>>>
>>>> print 'The mas of the second H atom is', hAtom2.position()
>>>>
>>>>
>>>>
>>>>
>>>> No se como hacer para que imprima los parámetros que pido.
>>>>
>>>>
>>>> Cualquier ayuda me sirve.
>>>>
>>>> Saludos!
>>>> _______________________________________________
>>>> pyar mailing list pyar-
>>> +ZN9ApsXKcFd+7ixHBZSzg en public.gmane.orghttp://listas.python.org.ar/listinfo/pyar
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> pyar mailing list pyar en ...
>>>> http://listas.python.org.ar/listinfo/pyar
>>>>
>>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>>
>>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>>> Argentina - http://www.usla.org.ar
>>>
>>> Hola,
>>>
>>> el problema es que al ejecutar tengo esta salida:
>>>
>>> The mas of the second H atom is
>>> Traceback (most recent call last):
>>>   File "./3.5-Class.py", line 24, in <module>
>>>     print 'The mas of the second H atom is', hAtom2.position()
>>> TypeError: 'list' object is not callable
>>>
>>>
>>> Otra cosa, no recibí las respuestas en mi correo. Me di cuenta que respondieron
>>> por que recibí el resumen diario y ahí me percate de sus respuestas.
>>>
>>> _______________________________________________
>>> pyar mailing list pyar en python.org.ar
>>> http://listas.python.org.ar/listinfo/pyar
>>>
>>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>>
>>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar
>>
>>
>>
>> --
>> fisa  -  Juan Pedro Fisanotti
>
> (top posting = postear arriba en lugar de abajo del contenido de los
> mails anteriores. Lo que yo acabo de hacer, y que no es lo que hay que
> hacer :p)
>
> --
> fisa  -  Juan Pedro Fisanotti
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar



-- 
Santiago Basulto.-



More information about the pyar mailing list