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

fisa fisadev en gmail.com
Jue Nov 8 21:34:19 ART 2012


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



More information about the pyar mailing list