"""
Classes

A programação orientada a objetos é uma das abordagens mais eficientes para escrever software. Na
programação orientada a objetos, escrevemos classes que representam entidades e situações do mundo real, e
criamos objetos com base nessas classes. Quando escrevemos uma classe, definimos o comportamento geral
que toda uma categoria de objetos pode ter.

-> Criar um objeto a partir de uma classe é uma operação conhecida como instanciação, e trabalhamos com
instâncias de uma classe.

Por convenção, nomes com a primeira letra maiúscula referem-se a classes em Python.

Uma função que faz parte de uma classe é um método.
O método __init__() é um método especial que Python executa automaticamente sempre que criamos
uma nova instância baseada na classe Dog.
O parâmetros self é obrigatório na definição do método e deve estar antes dos demais parâmetros.

Acessando atributos
nome_instancia.atributo

Chamando métodos
nome_instancia.metodo()

Trabalhando com classes e instâncias

Definindo um valor default para um atributo



"""