Carregando...

Métodos

Um método é um trabalho que pertence a uma só lâmpada. Quando você escreve lamp.label(), esse trabalho roda e devolve glow blue. Os parênteses fazem parte de rodar o trabalho. Sem eles, o trabalho não rodou, e a tela não mostra glow blue. label usa a palavra que já está guardada naquela lâmpada. Não instala pacote nenhum e não cria pasta. As linhas recuadas sob label são o trabalho. return devolve as palavras, mas não as escreve na tela por conta própria.

uma lâmpada faz um trabalho

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color
lamp = Lamp("blue")
print(lamp.label())

A tela mostra glow blue, com um espaço entre glow e blue. label montou essas palavras a partir da cor guardada e as devolveu. Quem escreve é o print. Sem a linha do print, o método ainda devolveria as palavras e a tela ficaria vazia. lamp.color continua sendo a palavra guardada, blue. lamp.label() é o trabalho que põe glow na frente dela. O resultado dos dois não é o mesmo.

duas lâmpadas, dois rótulos

python
class Lamp:
    def __init__(self, color):
        self.color = color
    def label(self):
        return "glow " + self.color
one = Lamp("blue")
two = Lamp("red")
print(one.label())
print(two.label())

A tela mostra duas linhas: glow blue e depois glow red. one e two são duas lâmpadas. Cada label usa só a palavra guardada na sua própria lâmpada. Criar a lâmpada vermelha não muda a azul. one.label() continua sendo glow blue. Lamp é o molde; one e two são os objetos. O trabalho é o mesmo, e a palavra guardada muda de uma lâmpada para outra.

Lamp.label() sem lâmpada não aparece em nenhum dos dois programas. O molde não tem cor guardada, e o trabalho precisa de uma lâmpada para usar. Essa linha para com TypeError. None não é escrito e o programa não continua. Primeiro você cria uma lâmpada; depois escreve os parênteses nela.

A próxima página é herança. Esta página só roda um trabalho em uma lâmpada e mostra que uma segunda lâmpada guarda as próprias palavras.

Um trabalho na lâmpada

lamp.label() mostra glow blue. Quem escreve as palavras é o print; o método só as devolve. Uma segunda lâmpada pode mostrar glow red sem mudar a primeira. Lamp.label() sem lâmpada para com TypeError. A próxima página é herança.

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
6
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo