How do I get the filepath for a class in Python?
Question: Given a class C in Python, how can I determine which file the class was
defined in? I need something that can work from either the class C, or from an
instance off C.

The reason I am doing this, is because I am generally a fan off putting files
that belong together in the same folder. I want to create a class that uses a
Django template to render itself as HTML. The base implementation should infer
the filename for the template based on the filename that the class is defined
in.

Say I put a class LocationArtifact in the file "base/artifacts.py", then I
want the default behaviour to be that the template name is
"base/LocationArtifact.html".


Answer: You can use the
[inspect](http://docs.python.org/library/inspect.html#inspect.getfile) module,
like this:

    
    
    import inspect
    inspect.getfile(C.__class__)
    

