Pergunta

Eu tenho um script em que faço algumas coisas mágicas para carregar dinamicamente um módulo e instanciar a primeira classe encontrada no módulo. Mas eu não posso usar types.ClassType mais em Python 3. Qual é a maneira correta de fazer isso agora?

Foi útil?

Solução

Eu descobri. Parece que as classes são do tipo "tipo". Aqui está um exemplo de como distinguir entre classes e outros objetos em tempo de execução.

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

Outras dicas

Foi usado para Aulas clássicas. No Python 3, eles se foram. Suponho que você poderia usar algo como:

issubclass(ClassName, object)
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top