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.
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.
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
Teste Seu Conhecimento
Desafie-se com este questionário interativo e veja o quão bem você entende o tópico
📝 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