[Python-Dev] inspect and metaclasses

R. David Murray rdmurray at bitdance.com
Fri Sep 6 20:34:54 CEST 2013


On Fri, 06 Sep 2013 10:01:32 -0700, Ethan Furman <ethan at stoneleaf.us> wrote:
> On 09/06/2013 09:37 AM, R. David Murray wrote:
> > On Fri, 06 Sep 2013 08:59:02 -0700, Ethan Furman <ethan at stoneleaf.us> wrote:
> >>
> >> For the short term I can restrict the change to inspect.classify_class_attrs().
> >
> > Sounds like the best course.
> 
> There is one other function in inspect that calls getmro():
> 
> def getmembers(object, predicate=None):
>      """Return all members of an object as (name, value) pairs sorted by name.
>      Optionally, only return members that satisfy a given predicate."""
>      if isclass(object):
>          mro = (object,) + getmro(object)
> 
> Should I add `+ getmro(type(object))` here as well?

Not unless you want to void the warranty on the docs :)

    Note getmembers() does not return metaclass attributes when the
    argument is a class (this behavior is inherited from the dir()
    function).

--David


More information about the Python-Dev mailing list