Bom, desde o inicio eu não estou conseguindo abrir o código no console, tentei de tudo. Eu estava usando o sublime text 3, só que eu vi que ele não mostrava os erros de syntax, então eu abri outro editor de texto, o node.js, e acabei encontrando alguns erros no código, corrigi tudo. Logo após, eu fui fazer o teste, para ver se imprimia o codigo no prompt (pois nunca imprimia), só que quando eu executei o código, não apareceu absolutamente nada, só criou uma nova linha para eu digitar. Vou colocar os códigos nas linhas abaixo.
--orcamento--
# -*- coding: UTF-8 -*-
class Orcamento(object):
def __init__(self, valor):
self.__valor = valor
@property
def valor(self):
total = 0.0
for item in self.__itens:
total += item.valor
return self.__valor
def obter_itens(self):
return tuple(self.__itens)
@property
def total_itens(self):
return len(self.__itens)
def adiciona_item(self, item):
self.__itens.append(item)
class Item(object):
def __init__(self, nome, valor):
self.__nome = nome
self.__valor = valor
@property
def valor(self):
return self.__valor
@property
def nome(self):
return self.__nome
--calculador de descontos--
# -*- coding: UTF-8 -*-
from descontos import Desconto_por_cinco_itens, Desconto_por_mais_de_quinhentos_reais, Sem_desconto
class Calculador_de_descontos(object):
def calcula(self, orcamento):
desconto = Desconto_por_cinco_itens(
Desconto_por_mais_de_quinhentos_reais(Sem_desconto())
).calcula(orcamento)
return desconto
if __name__ == '__main__':
from orcamento import Orcamento, Item
def __init__(self, orcamento):
orcamento = Orcamento()
orcamento.adciona_item(Item('ITEM - 1', 100))
orcamento.adciona_item(Item('ITEM - 2', 50))
orcamento.adciona_item(Item('ITEM - 3', 400))
calculador = Calculador_de_descontos()
desconto = calculador.calcula(orcamento)
print ('Desconto calculado %s' % (desconto))
--calculador de impostos--
# -*- coding: UTF-8 -*-
from impostos import ISS, ICMS, ICPP, IKCV
class Calculador_de_impostos(object):
def realiza_calculo(self, orcamento, imposto):
imposto_calculado = imposto.calcula(orcamento)
print (imposto_calculado)
if __name__ == '__main__':
from orcamento import Orcamento, Item
def __init__(self, orcamento):
orcamento = Orcamento()
orcamento.adciona_item(Item('ITEM - 1', 100))
orcamento.adciona_item(Item('ITEM - 2', 50))
orcamento.adciona_item(Item('ITEM - 3', 400))
print ('ISS e ICMS')
Calculador_de_impostos.realiza_calculo(orcamento, ISS())
Calculador_de_impostos.realiza_calculo(orcamento, ICMS())
print ('ICPP e IKCV')
Calculador_de_impostos.realiza_calculo(orcamento, ICPP())
Calculador_de_impostos.realiza_calculo(orcamento, IKCV())
--descontos--
# -*- coding: UTF-8 -*-
class Desconto_por_cinco_itens(object):
def __init__(self, proximo_desconto):
self.__proximo_desconto = proximo_desconto
def calcula(self, orcamento):
if orcamento.total_itens > 5:
return orcamento.valor * 0.1
else:
return self.__proximo_desconto.calcula(orcamento)
class Desconto_por_mais_de_quinhentos_reais(object):
def __init__(self, proximo_desconto):
self.__proximo_desconto = proximo_desconto
def calcula(self, orcamento):
if orcamento.valor > 500:
return orcamento.valor * 0.07
else:
return self.__proximo_desconto.calcula(orcamento)
class Sem_desconto(object):
def calcula(self, orcamento):
return 0
--impostos--
# -*- coding: UTF-8 -*-
class Desconto_por_cinco_itens(object):
def __init__(self, proximo_desconto):
self.__proximo_desconto = proximo_desconto
def calcula(self, orcamento):
if orcamento.total_itens > 5:
return orcamento.valor * 0.1
else:
return self.__proximo_desconto.calcula(orcamento)
class Desconto_por_mais_de_quinhentos_reais(object):
def __init__(self, proximo_desconto):
self.__proximo_desconto = proximo_desconto
def calcula(self, orcamento):
if orcamento.valor > 500:
return orcamento.valor * 0.07
else:
return self.__proximo_desconto.calcula(orcamento)
class Sem_desconto(object):
def calcula(self, orcamento):
return 0
prompt: