[pyar] Llamadas dinamicas resueltas en tiempo de ejecucion
Ale
peralta.alejandro en gmail.com
Jue Feb 17 15:26:47 ART 2011
El día 17 de febrero de 2011 15:03, Leonardo M. Rocha
<leo.m.rocha en gmail.com> escribió:
> On Thu, Feb 17, 2011 at 5:35 PM, Ale <peralta.alejandro en gmail.com> wrote:
>>> #para un plugin determinado obtengo la lista de elementos y las filtro
>>> de acuerdo a una lista de metodos que se utilizan
>>> processMethod = [i for i in inspect.getmembers(plugin) if i[0] in
>>> processMethodCheck]
>>>
>>> Lo anterior solo parece funcionar lindo para obtener los metodos de un objeto
>>
>> Me parece que no es solamente para los métodos
>>
>> In [15]: class A(object):
>> ....: def __init__(self):
>> ....: self.a = 42
>>
>> In [16]:
>>
>> In [17]: inspect.getmembers(A())
>> Out[17]:
>> [('__class__', <class '__main__.A'>),
>> ('__delattr__', <method-wrapper '__delattr__' of A object at 0x92d2dac>),
>> ('__dict__', {'a': 42}),
>> ...
>> ('__subclasshook__',
>> <built-in method __subclasshook__ of type object at 0x9329d34>),
>> ('__weakref__', None),
>> ('a', 42)] <--- Fijate que ahí
>> está el atributo a
>>
>>
>> Ahí listo un atributo que se agrega al objeto en el momento de inicialización...
>
> Tenes razon,
>
> Solo para aprender un poco mas:
>
> Se me ocurre que sigue siendo un poco mas rapido acceder al objeto del
> diccionario (O(1) (en general) a O(n) en el peor caso
>
> que primero armar una lista a partir del diccionario (supongo O(n) )
> y despues recorrer la lista (u ordenarla) en busqueda del elemento
> cero de la tupla (donde parece ser O(n) )tambien
>
El único problema que veo es que si no usas new-style classes eso no
creo ande, fijate que si definis
In [1]: class A: # no hereda de object
...: def __init__(self):
...: self.a = 42
...:
...:
In [3]: import inspect
In [4]: inspect.getmembers(A())
Out[4]:
[('__doc__', None),
('__init__', <bound method A.__init__ of <__main__.A instance at 0x9edce0c>>),
('__module__', '__main__'),
('a', 42)]
Entonces no tenes __dict__ Igual, si el código es propio y te
aseguraste de no usar "old-style classes"... capaz anda.
> Estoy en lo correcto ahi??
>
>
>>
>> Saludos,
>> --
>> Ale.
>> _______________________________________________
>> 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/
>>
>
>
>
> --
> Ing. Leonardo Manuel Rocha
> Ingénieur Expert
> INRIA Sophia Antipolis
> Projet PULSAR
> +33(0)49238 5007
> leonardo.rocha en inria.fr
> _______________________________________________
> 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/
>
--
Ale.
More information about the pyar
mailing list