Getting module path string from a class instance
someukdeveloper at gmail.com
Tue Nov 13 17:23:12 CET 2012
On 13/11/2012 09:36, Dave Angel wrote:
> On 11/13/2012 01:38 AM, Some Developer wrote:
>> I'm trying to find a way to get a string of the module path of a class.
>> So for instance say I have class Foo and it is in a module called
>> my.module. I want to be able to get a string that is equal to this:
>> "my.module.Foo". I'm aware of the __repr__ method but it does not do
>> what I want it to do in this case.
>> Can anyone offer any advice at all?
> So you have:
> import my.module
> theclass = my.module.Foo
> print tellme(theClass)
> and you want to know how to write tellme? Why not just change it to
> take a string, and pass it "my.module.Foo" ?
> If you have stored the class away somewhere, and want to figure it out
> from there, you could look at the __module__ attribute. that'll tell
> you the module name, but not the class name.
> If you're really asking how to get that string from an INSTANCE of the
> class, then try the __class__ attribute of that instance.
I'm actually writing a dynamic importer.
Basically when the program starts it queries all the loaded modules for
a certain package. It then stores the module and class information in a
database and then when a certain view is called the specific data
required is loaded by calling importlib.import_module('module.class').
This then populates the view with the required data.
Basically the idea is to be able to display any data required without
having to tightly couple the view code to a specific model type.
Thanks for the help.
More information about the Python-list