[Python-Dev] Sneaky 'super' instances

Guido van Rossum guido@python.org
Tue, 10 Jun 2003 20:30:26 -0400


> Bug 729103 discovered an interesting little issue; 'super' instances 
> cause inspect.isroutine to return True since it also poses as a non-data 
> descriptor.  Now this is bad because pydoc then tries to get a __name__ 
> attribute out of it which it lacks because it is an instance of a class 
> and not really a function or method.
> 
> So, should I change inspect.isroutine to check to see if its argument is 
> an instance of 'super'?  Is there a robust way to check if something is 
> an instance of a class which could be used instead to make this more 
> general (like lacking a __name__ attribute)?  Or do we just cause pydoc 
> to spit out "RTM online" every time it raises an error.  =)

inspect shouldn't assume hat just because isroutine() returns true,
there has to be a __name__ attribue.  Unfortunately, inspect is full
of such assumptions. :-)

--Guido van Rossum (home page: http://www.python.org/~guido/)