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?
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?
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.
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")
def dirigir(carro): carro.acelerar(20) carro.mostrar_velocidade() carro.frear(10) carro.mostrar_velocidade()
meu_carro = Carro("Ford", "Fiesta")
print("Usando a função comum:") dirigir(meu_carro)
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!