1
resposta

Funções com OO

Boa noite, galera, tudo bem?

Uma dúvida bem básica mas acho melhor perguntar, é possível usar função (def) com O.O? Se sim, poderiam me mostrar um código simples que junte os dois?

1 resposta

Sim, é perfeitamente possível usar funções definidas com def em conjunto com programação orientada a objetos (O.O.) em Python. Vou te mostrar um exemplo simples onde uma classe possui métodos (funções associadas a objetos) e uma função comum que não está diretamente associada à classe, mas que pode interagir com objetos dessa classe.

Definindo uma classe simples

class Carro: def init(self, marca, modelo): self.marca = marca self.modelo = modelo self.velocidade = 0 # A velocidade inicial do carro é 0

def acelerar(self, incremento):
    self.velocidade += incremento

def frear(self, decremento):
    if self.velocidade >= decremento:
        self.velocidade -= decremento
    else:
        self.velocidade = 0

def mostrar_velocidade(self):
    print(f"O carro {self.marca} {self.modelo} está a {self.velocidade} km/h")

Função comum que utiliza objetos da classe Carro

def dirigir(carro): carro.acelerar(20) carro.mostrar_velocidade() carro.frear(10) carro.mostrar_velocidade()

Criando uma instância da classe Carro

meu_carro = Carro("Ford", "Fiesta")

Chamando a função dirigir e passando meu_carro como argumento

print("Usando a função comum:") dirigir(meu_carro)

Usando métodos da classe diretamente

print("\nUsando métodos da classe diretamente:") meu_carro.acelerar(30) meu_carro.mostrar_velocidade() meu_carro.frear(15) meu_carro.mostrar_velocidade()

Explicação do Código: Definindo a Classe Carro:

A classe Carro tem um construtor init que inicializa os atributos marca, modelo e velocidade. Ela possui métodos: acelerar: Incrementa a velocidade do carro. frear: Decrementa a velocidade do carro, com verificação para evitar velocidade negativa. mostrar_velocidade: Imprime a velocidade atual do carro. Função dirigir:

É uma função comum que recebe um objeto da classe Carro como argumento. Utiliza métodos da classe Carro para acelerar, mostrar a velocidade e frear o carro. Instanciando um Objeto Carro:

Criamos uma instância da classe Carro com a marca "Ford" e modelo "Fiesta". Utilizando a Função e Métodos:

Chamamos a função dirigir, passando nosso objeto meu_carro como argumento. Em seguida, usamos métodos da classe Carro diretamente para demonstrar aceleração, frenagem e visualização da velocidade. Espero que este exemplo simples tenha esclarecido como você pode combinar funções com O.O. em Python!