Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Verificar se uma variável guarda uma classe


Nerun

Pergunta

Exemplo:

> class a:
    oi = 'oi'

> inspect.isclass(a)
True

> x = a() #uma variável que guarda uma classe, um "tipo" de "a"

> inspect.isclass(x)
False
# até aqui tudo bem, não é classe mesmo

Pergunta: como verificar se a variável x guarda um "tipo" da classe a?

Do tipo:

if x == a: ...

x não é igual a, por isso não funciona, mas deve haver um método de verificar se o x é um "tipo" de a... Alguém sabe?

Editado por Nerun
Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Descobri, tem um ótimo tutorial aqui:

http://www.cafepy.com/article/python_types...nd_objects.html

basicamente:

class teste:
    oi = 'oi'
se tivermos:
a = teste
b = teste()
Temos que: a é sub-classe de teste b é instância de teste Para verificar cada um:
> issublcass(a, teste)
True
> isinstance(b, teste)
True
> isinstance(b, a)
True
Por outro lado:
> issubclass(b, teste)
Traceback (most recent call last):
  File "<pyshell#8>", line 1, in <module>
    issubclass(b, teste)
TypeError: issubclass() arg 1 must be a class

Portanto o issubclass compara duas classes apenas, e o isinstance compara uma instância e uma classe apenas.

Explicação simples:

Classe: Felino

Sub-classe: Gato

Instância: Tom, o meu gato de estimação

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...