[Python-es] Saber si un atributo es un descriptor

Kiko kikocorreoso en gmail.com
Lun Dic 14 16:24:43 EST 2015


> *import types*
>>
>>
>>
>>
>>
>> *a = 1for attr in dir(a):    if isinstance(getattr(type(a), attr),
>> types.GetSetDescriptorType):        print(attr)*
>> Y el resultado sería:
>>
>>
>>
>>
>>
>>
>> *denominatorimagnumeratorreal*
>>
>
> Vaya, acabo de cambiar *a* para que sea *complex* en lugar de *int* y mi
> código de encima no me devuelve *img* y *real*, que son descriptores de
> *complex*...
>
> :-(
>

Esto parece que sí funciona:

*import types*





*a = 1 + 2jfor attr in dir(a):    if isinstance(getattr(type(a), attr),
                      (types.GetSetDescriptorType,
types.MemberDescriptorType)):        print(attr)*
Lo anterior parece que sí funciona. No entiendo muy bien la diferencia
entre GetSetDescriptor y MemberDescriptor.
¿Sería lo anterior lo adecuado para resolver el problema?

Gracias.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151214/a3f76afb/attachment.html>


Más información sobre la lista de distribución Python-es