Skip to content

Instantly share code, notes, and snippets.

@bergpb
Created August 17, 2019 17:20
Show Gist options
  • Select an option

  • Save bergpb/70a3380e1462d8d3784a7a1ea5f30555 to your computer and use it in GitHub Desktop.

Select an option

Save bergpb/70a3380e1462d8d3784a7a1ea5f30555 to your computer and use it in GitHub Desktop.
Exercício da Disciplina de Técnicas de Programação - Aula 05
from datetime import datetime as dt
class Pessoa:
def __init__(self, nome, cpf, data_nascimento):
self.nome = nome
self.cpf = cpf
self.data_nascimento = data_nascimento
class Funcionario(Pessoa):
def __init__(self, nome, cpf, data_nascimento, data_admissao, salario, lotacao):
super().__init__(nome, cpf, data_nascimento)
self.data_admissão = data_admissao
self.salario = salario
self.lotacao = lotacao
def calcula_salario_mensal(self):
data_hoje = dt.now()
anos_trabalhados = int(abs((data_hoje - data_admissao).days / 365))
salario_mensal = self.salario + (self.salario * anos_trabalhados) / 100
return salario_mensal
# representação da classe
def __repr__(self):
return 'Nome: {}, CPF: {}, Salário: {}'.format(self.nome, self.cpf, self.salario)
class Supervisor(Funcionario):
def __init__(self, nome, cpf, data_nascimento, data_admissao, salario, lotacao, comissao):
super().__init__(nome, cpf, data_nascimento, data_admissao, salario, lotacao)
self.comissao = comissao
# sobrescrita do metodo calcula_salario_mensal da classe funcionario
def calcula_salario_mensal(self):
return super().calcula_salario_mensal() + self.comissao
# representação da classe
def __str__(self):
return 'Nome: {}, CPF: {}, Salário: {}, Comissão: {}'.format(self.nome, self.cpf, self.salario, self.comissao)
data_nascimento = dt.strptime('2000-01-01', '%Y-%m-%d')
data_admissao =dt.strptime('2005-01-01', '%Y-%m-%d')
funcionario = Funcionario('Josh', '793.253.125-92', data_nascimento, data_admissao, 2000, 'Setor 1')
supervisor = Supervisor('Nicole', '589.365.182-21', data_nascimento, data_admissao, 2000, 'Setor 1', 500)
print('---Funcionario---')
print(funcionario)
print('Salário mensal: {}'.format(funcionario.calcula_salario_mensal()))
print('---Supervisora---')
print(supervisor)
print('Salário mensal: {}'.format(supervisor.calcula_salario_mensal()))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment