image

Bootcamps ilimitados + curso de inglês para sempre

80
%OFF
Article image
Valdemar Taborda
Valdemar Taborda31/08/2024 21:11
Compartilhe
Microsoft 50 Anos - Prompts InteligentesRecomendados para vocêMicrosoft 50 Anos - Prompts Inteligentes

Entendendo Orientação a Objetos em Python com um Exemplo de Vendas

  • #Power BI
  • #Python

Boa noite Devs!

Vamos explorar um exemplo simples, mas muito útil, que demonstra como organizar seu código usando classes e objetos.

Conceitos Básicos de Orientação a Objetos

Orientação a Objetos (OO) é uma forma de organizar e estruturar o código em torno de "objetos", que podem representar coisas do mundo real, como produtos, vendas, ou categorias, ou até mesmo conceitos abstratos. Esses objetos são criados a partir de classes, que são como "moldes" que definem o que os objetos podem fazer e que informações eles guardam.

Exemplo de Vendas

Neste exemplo, construir um sistema simples que gerencia vendas dentro de categorias. Vamos usar duas classes principais: Venda e Categoria. A classe Venda vai representar uma única venda, enquanto a classe Categoria vai representar uma categoria de produtos e manterá uma lista de vendas associadas a ela.

class Venda:
  def __init__(self, produto, quantidade, valor):
      self.produto = produto
      self.quantidade = quantidade
      self.valor = valor


class Categoria:
  def __init__(self, nome):
      self.nome = nome
      self.vendas = []


  def adicionar_venda(self, venda):
      if isinstance(venda, Venda):
          self.vendas.append(venda)


  def total_vendas(self):
      total = sum(venda.valor for venda in self.vendas)
      return total


def main():
  categorias = []


  for i in range(2):
      nome_categoria = input()
      categoria = Categoria(nome_categoria)


      for j in range(2): 
          entrada_venda = input()
          produto, quantidade, valor = entrada_venda.split(',')
          quantidade = int(quantidade.strip())
          valor = float(valor.strip())


          venda = Venda(produto.strip(), quantidade, valor)
          categoria.adicionar_venda(venda)


      categorias.append(categoria)
  
  for categoria in categorias:
      print(f"Vendas em {categoria.nome}: {categoria.total_vendas():.1f}")


if __name__ == "__main__":
  main()

Classe Venda

class Venda:
  def __init__(self, produto, quantidade, valor):
      self.produto = produto
      self.quantidade = quantidade
      self.valor = valor

O que faz:

A classe Venda é responsável por representar uma venda. Cada venda tem três

atributos:

  • produto: o nome do produto vendido.
  • quantidade: quantos itens foram vendidos.
  • valor: o preço total da venda.

Construtor:

  • O método __init__ é o que chamamos de construtor. Ele é chamado automaticamente quando criamos uma nova venda, inicializando os atributos produto, quantidade e valor.

Classe Categoria


class Categoria:
  def __init__(self, nome):
      self.nome = nome
      self.vendas = []


  def adicionar_venda(self, venda):
      if isinstance(venda, Venda):
          self.vendas.append(venda)


  def total_vendas(self):
      total = sum(venda.valor for venda in self.vendas)
      return total

O que faz:

A classe Categoria mantém uma lista de todas as vendas que pertencem a essa categoria.

Ela tem:

  • nome: o nome da categoria (por exemplo, "Eletrônicos").
  • vendas: uma lista que guarda todas as vendas associadas a essa categoria.

Método adicionar_venda:

  • Este método adiciona uma nova venda à lista vendas da categoria, mas apenas se a venda for realmente uma instância da classe Venda.

Método total_vendas:

  • Este método calcula e retorna o total das vendas na categoria, somando o valor de cada venda na lista vendas.

Função main()

def main():
  categorias = []


  for i in range(2):
      nome_categoria = input()
      categoria = Categoria(nome_categoria)


      for j in range(2): 
          entrada_venda = input()
          produto, quantidade, valor = entrada_venda.split(',')
          quantidade = int(quantidade.strip())
          valor = float(valor.strip())


          venda = Venda(produto.strip(), quantidade, valor)
          categoria.adicionar_venda(venda)


      categorias.append(categoria)
  
  for categoria in categorias:
      print(f"Vendas em {categoria.nome}: {categoria.total_vendas():.1f}")


O que faz:

A função main() controla o fluxo do programa:

  • Cria uma lista categorias para guardar as categorias.
  • Pede ao usuário para inserir o nome de duas categorias e cria objetos Categoria para elas.
  • Pede ao usuário para inserir duas vendas para cada categoria.
  • Adiciona as vendas às suas respectivas categorias.
  • Calcula e exibe o total de vendas para cada categoria.

Conclusão

Este exemplo simples mostra como pode organizar seu código usando classes e objetos. A classe Venda encapsula os detalhes de uma única venda, enquanto a classe Categoria agrupa e gerencia essas vendas. Usando a orientação a objetos, seu código fica mais organizado e fácil de entender e manter.🚀

Compartilhe
Recomendados para você
Suzano - Python Developer
BairesDev - Machine Learning Practitioner
Suzano - Análise de Dados com Power BI
Comentários (0)
Recomendados para vocêMicrosoft 50 Anos - Prompts Inteligentes