[pyar] __lt__ entre clases

Franco Rodríguez franco.rodriguezf en gmail.com
Mie Sep 9 12:14:20 ART 2015


Mortal! fijate que con total_ordering (
https://docs.python.org/2/library/functools.html#functools.total_ordering)
podés definir un orden total a partir de los otros. Ojo con definir el
__eq__(cls, other) como cls == other porq vas a entrar en una recursión
infinita, jaja. Quizás lo puedas hacer con cls.__name__ == other.__name__.

Me alegro que te sirva, no sé si será la mejor forma. Mi forma es la misma
que la de gaitán, nada más q estoy definiendo el poset.

El 9 de septiembre de 2015, 12:02, Pablo Ventura <pablogventura en gmail.com>
escribió:

>
> ​El 9 de septiembre de 2015, 11:43, Martín Gaitán <gaitan en gmail.com>
> escribió:
>
>>
>> fijate que hay una función
>>
>> >>> issubclass(B, A)
>> True
>>
>
> Gracias! pero no me serviria porque me olvide de decir que necesito __lt__
> para poder hacer despues min(A,B,C) =A​
>
> ​y ordenar listas con las clases.​
>
> ​​
> El 9 de septiembre de 2015, 11:47, Franco Rodríguez <
> franco.rodriguezf en gmail.com> escribió:
>
>> Esto no sirve?:
>>
>> class M(type):
>>     def __init__(cls, name, bases, attrs):
>>         super(M, cls).__init__(name, bases, attrs)
>>
>>     def __lt__(cls, otherC):
>>         return issubclass(cls, otherC)
>>
>>
>> class A(object):
>>     __metaclass__ = M
>>     pass
>>
>>
>> class B(A):
>>     pass
>>
>>
>> class C(B):
>>     pass
>>
>> ​Esto me viene perfecto! Muchas gracias!​
>>
>
> _______________________________________________
> 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
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20150909/10db6ef8/attachment.html>


More information about the pyar mailing list