Menu
Coddy logo textTech

O Parâmetro self

Parte da seção Object Oriented Programming do Journey de Python da Coddy — lição 4 de 64.

O parâmetro self refere-se à instância de uma classe dentro de métodos. Ele permite que você acesse e modifique atributos do objeto atual.

Aqui está um exemplo de uma classe com métodos usando 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 em 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 o self, os métodos não saberiam quais atributos de objeto usar.

Ponto Chave: Sempre inclua self como o primeiro parâmetro em 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.

Folha de consulta

O parâmetro self refere-se à instância de uma classe dentro de métodos e permite que você acesse e modifique atributos do objeto atual.

self deve ser sempre o primeiro parâmetro nas definições de métodos:

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

Crie um objeto e adicione atributos:

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

Chame os métodos (o Python passa automaticamente o objeto como self):

my_car.honk()        # Beep beep!
my_car.describe()    # I am a Red Sedan

Ponto Chave: Sempre inclua self como o primeiro parâmetro nas definições de métodos, mas nunca o passe ao chamar os métodos.

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()  # Deve imprimir: Este carro é um Toyota Corolla 2020
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 Object Oriented Programming