O que aconteceu com os tipos.ClasStype no Python 3?
-
22-08-2019 - |
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?
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