Question

I have a script where I do some magic stuff to dynamically load a module, and instantiate the first class found in the module. But I can't use types.ClassType anymore in Python 3. What is the correct way to do this now?

Was it helpful?

Solution

I figured it out. It seems that classes are of type "type". Here is an example of how to distinguish between classes and other objects at runtime.

>>> class C: pass
... 
>>> type(C)
<class 'type'>
>>> isinstance(C, type)
True
>>> isinstance('string', type)
False

OTHER TIPS

It was used for classic classes. In Python 3 they're gone. I suppose you could use something like:

issubclass(ClassName, object)
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top