Menu
Coddy logo textTech

O Parâmetro self

Parte da seção Programação Orientada a Objetos do Journey de Python da Coddy. Lição 4 de 64.

O parâmetro self refere-se à instância de uma classe dentro dos métodos. Ele permite acessar e modificar os atributos do objeto atual.

Aqui está um exemplo de uma classe com métodos que usam self:

class Car:
    def honk(self):
        print("Beep beep!")
    
    def describe(self):
        print(f"I am a {self.color} {self.model}")

O parâmetro self deve ser sempre o primeiro parâmetro nas definições de métodos. Ele informa ao método qual objeto específico está sendo usado.

Crie um objeto carro e adicione atributos:

my_car = Car()
my_car.color = "Red"
my_car.model = "Sedan"

Agora chame os métodos:

my_car.honk()
my_car.describe()

Saída:

Beep beep!
I am a Red Sedan

Observe que, ao chamar my_car.describe(), você não passa nada para self — o Python passa automaticamente my_car como o parâmetro self.

Aqui está o que acontece nos bastidores:

# Quando você escreve isto:
my_car.describe()

# O Python na verdade faz isto:
Car.describe(my_car)

O parâmetro self permite que cada objeto acesse seus próprios dados. Sem self, os métodos não saberiam quais atributos do objeto usar.

Ponto-chave: sempre inclua self como o primeiro parâmetro nas definições de métodos, mas nunca o passe ao chamar métodos — o Python lida com isso automaticamente.

challenge icon

Desafio

Fácil

Complete a classe Car em car.py adicionando um método chamado display_info que usa o parâmetro self para imprimir o ano, marca e modelo do carro no formato:

"This car is a [year] [make] [model]".

  • car.py: Contém a definição da classe Car onde você adicionará o método display_info
  • driver.py: Arquivo de execução principal que importa e usa a classe Car

O arquivo driver.py importará sua classe Car e criará instâncias para testar sua implementação. Certifique-se de que seu método funcione corretamente quando chamado a partir do arquivo driver.

Experimente você mesmo

from car import Car

# Teste seu código
my_car = Car()
my_car.year = 2020
my_car.make = "Toyota"
my_car.model = "Corolla"

my_car.display_info()  # Should print: This car is a 2020 Toyota Corolla
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Programação Orientada a Objetos

Pratique por conta própria: Compilador de Python online