FC ConcursosFC Concursos

Questão FC373125

Observe os dois trechos de código Python abaixo Código 1: class Tempo: def print_tempo(tempo): print('%.2d:%.2d:%.2d' % (tempo.hour, tempo.minute, tempo.second)) I Código 2: class

Linguagens de Programação para Ciência de Dados

FCC · 2022

Observe os dois trechos de código Python abaixo

 

Código 1:

 

class Tempo:

 

def print_tempo(tempo):

print('%.2d:%.2d:%.2d' % (tempo.hour, tempo.minute, tempo.second))

  I  

 

Código 2:

 

class Tempo:

def print_tempo(tempo):

print('%.2d:%.2d:%.2d' % (tempo.hour, tempo.minute, tempo.second))

  II  

 

Considere que foram executados estes comandos, antes de I e antes de II, em ambiente configurado em condições ideais:

 

>>> t1 = Tempo()

>>> t1.hour = 11

>>> t1.minute = 15

>>> t1.second = 00

 

É correto afirmar:

  1. Em I e em II, se for executado o comando >>> print_tempo(t1) o resultado será 11:15:00
  2. O Código 2 pode ser reescrito desta maneira equivalente:

    class Tempo:

    def print_tempo(self):

    print('%.2d:%.2d:%.2d' % (self.hour, self.minute, self.second))

  3. Em II, se for executado o comando >>> print_tempo(t1) a função print_tempo apresentará como resultado 11:15:00
  4. Em I, se for executado o comando >>> Tempo.print_tempo(t1) o método print_tempo apresentará como resultado 11:15:00
  5. Em II, se for executado o comando >>> t1.print_tempo() o resultado apresentará erro.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A alternativa aponta que o método pode ser reescrito trocando o nome do primeiro parâmetro por self. Em Python o primeiro parâmetro de um método de instância recebe automaticamente a instância que chamou o método; o nome desse parâmetro pode ser qualquer identificador.

Portanto, declarar def print_tempo(tempo): ou def print_tempo(self): é semanticamente equivalente: dentro do corpo do método, tempo.hour refere‑se ao mesmo atributo que self.hour.

Na prática, a convenção é usar self para tornar o código claro a outros desenvolvedores, mas isso não é uma palavra‑reservada. Chamadas como t1.print_tempo() passam automaticamente a instância t1 para esse primeiro parâmetro, e também é possível invocar explicitamente Tempo.print_tempo(t1).

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo