SóProvas


ID
2369857
Banca
UFMT
Órgão
UFSBA
Ano
2017
Provas
Disciplina
Programação
Assuntos

Analise o trecho de código em Python a seguir.


class A:

            a = 1

class B(A):

            b = 2

class C1(B):

            c = 3

class C2(A):

            c = 3

class D1(C2):

            d = 4

class D2(C1):

            d = 4

class D3(B):

            d = 4 


print isinstance(D3(), B), isinstance(D2(), C2), isinstance(D2(), A), isinstance(D1(), C1) 


Considerando o código Python, assinale a alternativa que apresenta a saída do trecho destacado. 

Alternativas
Comentários
  • Em Python herança é declarado como

    Classe(Superclasse):

    Então, por exemplo, B(A): quer dizer que B estende A, ou seja, B é subclasse de A.

     

    Gabarito: a)

  • Sintaxe da função: 

     

     isinstance(objeto, classe)    ----> retornará TRUE se o objeto derivar da classe;

     

     

  • Fiz uma representação estilo árvore genealógica pra entender melhor:   

                                     

                                                                              A

                                                 |-----------------------------------------------|

                                                 B                                                     C2

                        |---------------------------------------|                                 |

                       C1                                           D3                              D1

                        |

                       D2

     

    O que a questão pede é se elemento 1 é descendente de elemento 2:  isinstance (elemento 1 (), elemento 2). Basta olhar no esquema para responder.

     

  • Na verdade do jeito que esta ai não escreve nada...

    class A:

       A = 1

    class B(A):

       B = 2

    class C1(B):

       C = 3

    class C2(A):

       C = 3

    class D1(C2):

       D = 4

    class D2(C1):

       D = 4

    class D3(B):

       D = 4

    x = isinstance(D3(), B), isinstance(D2(), C2), isinstance(D2(), A), isinstance(D1(), C1)

    print(x)

    Retorno: