Quizá para eso te vendría mejor usar "property"

http://docs.python.org/library/functions.html#property

Pero no se si lo tienes en python 2.3, me da que no


2011/2/28 Jose Caballero <jcaballero....@gmail.com>:
>
>
>
>
> On Feb 28, 2011, at 4:20, Juan Ignacio <euriba...@gmail.com> wrote:
>
>> 2011/2/28 Jose Caballero <jcaballero....@gmail.com>:
>>
>>> La pregunta es si se puede hacer algo como
>>> class myclass:
>>>   def __setattr__(key, value):
>>>         self.__dict__[key] = value
>>>         print 'passing key %s with value %s' %(key, value)
>>>   __setattr__ = staticmethod( __setattr__ )
>>>
>>> y luego poder hacer
>>>
>>> myclass.x = 1
>>> myclass.y = 2
>>
>> Se puede, pero no hace falta:
>>
>>>>> class C(object):
>> ...     pass
>> ...
>>>>> C.x = 1
>>>>> C.y = 1
>>>>> print C.x
>> 1
>>
>> Aunque normalmente se prefiere algo como esto:
>>
>> class C(object):
>>    x = 1
>>    y = y
>>
>> print C.x
>> 1
>
>
> Pero fíjate que yo quiero hacer más cosas y no solo asignar un valor a la 
> variable. En el ejemplo que puse hago un print. También quiero hacer 
> validación de los valores. Por eso necesito una función/método. Y había 
> pensado en __setattr__
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
Juan Ignacio Rodríguez de León
Móvil: 605 890514
E-Mail: euriba...@gmail.com
http://www.metriz.com/
http://descon2.com/
http://www.elornitorrincoenmascarado.com/
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a