[pyar] Saber si algo es un método

Juanjo Conti jjconti en gmail.com
Mie Jun 9 11:47:13 ART 2010


Lista, estaba revisando un programa mío y en una parte quería saber si
cierto atributo de un objeto era un método o no. Lo hice con

if inspect.ismethod(attr) or inspect.ismethoddescriptor(attr):

pero me puse a pensar y me surgió una duda, que tal si en un atributo de un
objeto almacenamos una función para utilizar luego o para pasarla como
parámetro a otro objeto y tenemos:

>>> import inspect
>>> class A:
...     pass
...
>>> def f():
...     pass
...
>>> A.g = f
>>> inspect.ismethod(A.g)
True

Yo esperaba que de False. Pero...

>>> type(A.g)
<type 'instancemethod'>
>>> type(f)
<type 'function'>

Por lo visto cuando se asigna una función a un atributo, se la glorifica en
método.

-- 
Juanjo Conti
blog: http://www.juanjoconti.com.ar
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20100609/2f3fecb1/attachment.html>


More information about the pyar mailing list