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 = breedO 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 RetrieverVocê 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 oldPonto 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.
Desafio
FácilVocê 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
Bookembook.pycom um método__init__que inicializa os atributostitle,authorepages - O arquivo
driver.pyimportará e usará sua classeBookpara 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 = breedCrie objetos chamando a classe com argumentos:
rex = Dog("Rex", "German Shepherd")
print(rex.name) # Rex
print(rex.breed) # German ShepherdConstrutores 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ãoExperimente 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")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
1Fundamentos de POO
Arquivos ExternosIntrodução à POOClasses vs ObjetosO Parâmetro selfMétodosAtributosMétodo Construtor (__init__)Recapitulação - Calculadora Simples4Herança
Herança BásicaA Função super()Sobrescrita de MétodoHerança MúltiplaOrdem de Resolução de MétodosRecapitulação - Hierarquia de Funcionários7Métodos Especiais
Introdução aos Métodos MágicosSobrecarga de OperadoresMétodos Mágicos de ContêinerRecapitulação - Lista Personalizada10Padrões de Projeto Parte 1
Introdução a Padrões de ProjetoPadrão SingletonPadrão FactoryPadrão ObserverPadrão Strategy2Decoradores
Introdução aos DecoradoresDecorador de PropriedadeDecorador de Método EstáticoDecorador de Método de Classe5Polimorfismo
Sobrescrita de Método RevisitadaDuck TypingClasses e Métodos AbstratosDesign de InterfacesRecapitulação - Calculadora de Formas8Conceitos Avançados de POO
Composição vs HerançaMixinsMétodos Estáticos e de ClasseDecoradores de ClasseGerenciadores de Contexto11Padrões de Projeto Parte 2
Padrão CommandPadrão AdapterPadrão DecoratorPadrão Template MethodPadrão StatePadrão Composite3Propriedades de Classe
Variáveis de Instância vs de ClasseDecoradores de PropriedadeAtributos PrivadosRecapitulação - Gerenciador de Conta Bancária6Encapsulamento
Membros Públicos, Protegidos e PrivadosModificadores de AcessoOcultação de InformaçãoProperty Decorators AvançadosRecapitulação - Sistema de Registro de Alunos12Projeto: Gerenciamento de Biblioteca
Visão Geral do ProjetoClasses Livro e Usuário