Find out which module a class came from

Chris Angelico rosuav at gmail.com
Fri Apr 7 16:31:09 EDT 2017


On Sat, Apr 8, 2017 at 6:24 AM, Tobiah <toby at tobiah.org> wrote:
> I was viewing the python source for a program at work and
> came across a class name that I knew my company had written:
>
>         import mycmp1
>         import mycmp2
>         import mycmp3
>         import mycmp4
>         import mycmp5
>
>         foo = FooClass()
>
>
> So I knew that FooClass was defined in one of those imports, but
> I thought it would be tedious to track down the location of all
> of those modules (is module.__file___ the best way) and scan them
> for the class definition.  Is there a better way to find the
> definition of FooClass()?

If they're just "import modulename", then FooClass won't be defined
unless it's been injected into the builtins or something. Are they
"from mycmp1 import *"?

Normally, you should be able to just look at FooClass.__module__ to
see where it's been created. But if your module layout is messy, that
might not be sufficient information.

ChrisA


More information about the Python-list mailing list