Menu
Coddy logo textTech

Método Construtor (__init__)

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

O método __init__ é um método especial que é executado automaticamente quando você cria um novo objeto. Ele inicializa os atributos do objeto.

Aqui está um exemplo de uma classe com um construtor:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

O método __init__ recebe parâmetros e os atribui a atributos de instância usando self.

Crie objetos usando o construtor:

rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")

Quando você chama Dog("Rex", "German Shepherd"), o Python chama automaticamente __init__ e passa os argumentos.

Acesse os atributos que foram definidos pelo construtor:

print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)

Saída:

Rex
German Shepherd
Buddy
Golden Retriever

Você também pode ter um construtor com valores padrão:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

# Criar gatos
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age tem como padrão 1

print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")

Saída:

Fluffy is 3 years old
Whiskers is 1 years old

Ponto Chave: O método __init__ garante que cada objeto seja configurado corretamente com seus dados iniciais quando criado. Ele evita que você tenha que definir atributos manualmente após a criação do objeto.

challenge icon

Desafio

Fácil

Você recebeu arquivos Python (book.py e driver.py) para implementar um sistema de gerenciamento de livros. Neste desafio, você definirá uma classe Book em um arquivo que será importada e usada em outro.

Sua tarefa é:

  • Completar a classe Book em book.py com um método __init__ que inicializa os atributos title, author e pages
  • O arquivo driver.py importará e usará sua classe Book para criar um objeto de livro para "Harry Potter" by "J.K. Rowling" with 400 pages

Siga os comentários TODO detalhados no book.py .

Folha de consulta

O método __init__ é um construtor que é executado automaticamente ao criar um novo objeto para inicializar seus atributos:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

Crie objetos chamando a classe com argumentos:

rex = Dog("Rex", "German Shepherd")
print(rex.name)  # Rex
print(rex.breed)  # German Shepherd

Construtores podem ter valores de parâmetros padrão:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age assume 1 por padrão

Experimente você mesmo

# TODO: Importe a classe Book de book.py
# Use este formato: from book import Book

# TODO: Crie um objeto de livro chamado 'my_book' com os seguintes valores:
# - título: "Harry Potter"
# - autor: "J.K. Rowling"
# - páginas: 400
# Exemplo: my_book = Book("Title", "Author", pages)

# Imprimir detalhes do livro
# TODO: Certifique-se de que my_book esteja devidamente definido antes que esta linha seja executada
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")
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